|
|
|
|
For c'est plus général que while :
unsigned int i;
i=0;
while(i<5){
printf("i=%d\n",i);
++i;
}
//-------------
unsigned int i;
for(i=0;i<5;++i;){
printf("i=%d\n",i);
}
Remarque de mamie : l'instruction "vide" valant 1, tu peux utiliser une condition d'arret vide ! Ainsi while(1) <=> while() <=> for(;;) (boucle infinie, que tu interrompt avec un break). Et ceci permet d'introduire la remarque droïde qui dit que sur le papier c'est équivalent, mais à la compilation le for(;;) est plus rapide... Comme quoi on n'est jamais au bout de ses surprises ^^ Bonne chance |
Répondre à sarah
|
Voici un code que j'ai fait avec while , il marche parfaitement :
char c = 'a';
while ( c <= 'z' )
{
if ( c % 2 == 0 )
putchar(c);
if ( c % 2 != 0 )
putchar ( c - 32 );
++c;
}
j'essaye de le recoder avec for , vous me direz si j'ai bon : char c = 'a'; for ( c = 'a'; c <= 'z'; ++c) if ( c % 2 == 0 ) putchar(c); if ( c % 2 != 0 ) putchar ( c - 32 ); bon là j'ai pas vraiment gagné en terme de lisibilité , while et for sont égaux sur ce coup :) |
C'est une question de présentation ça ne va pas plus loin. En fait je ne sais pas si ca marche en C (mais ca marche en c++), tu devrais écrire :
for (char c = 'a'; c <= 'z'; ++c){
if (c%2==0) putchar(c);
else putchar(c-32);
}
Car la portée de la variable c serait l'horizon délimité par les { } de la boucle for. Chose que tu ne pourrais pas faire avec un while... |
Répondre à sarah
|
For et while marche pareil en C et en C++
|