Pourquoi le premier programme ci-dessous fonctionne-t-il mais pas le second? Je veux dire, le deuxième programme donne une erreurPourquoi "for (; i <= 10; i ++)" fonctionne-t-il mais "for (i = 0; i <= 10 ;;)" ne fonctionne pas?
"expression attendue avant ';'"
Mais pourquoi il ne donne pas la même chose pour « pour (; i < = 10; i ++) " car là aussi la première expression est manquante? Est-ce que le ";;" dans "pour (i = 0; i < = 10 ;;)" du second programme signifie une expression vide? Et enfin, pourquoi "pour (i = 0; i < = 10;)" fonctionne alors en supprimant le second point-virgule?
//Program 1
#include<stdio.h>
int main()
{
int i=1;
for(;i<=10;i++)
{
printf("%d\n",i);
}
}
//Program 2
#include<stdio.h>
int main()
{
int i;
//for(i=1;i<=10;) // This works but following doesn't
for(i=1;i<=10;;)
{
printf("%d\n",i);
i++;
}
}
* Comptez les points-virgules et vous verrez/** deux ** ne sont pas les mêmes que ** trois **. * – Zeta
point-virgule (;) ne signifie PAS une expression vide.Il sépare les 3 expressions à l'intérieur de la pour loop.A pour la boucle contient 2 points-virgules –