comparaison dans une boucle inutile ou non ?
Bonjour.
Je suis en train de lire le K&R2, et je lis en parallèle des solutions proposées aux exercices du livre sur ce wiki :
http://clc-wiki.net/wiki/K%26R2_solu...r_1:Exercise_9
J'ai beau relire et bien réfléchir, il me semble que la troisième solution utilise inutilement l'opérateur ET logique.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <stdio.h>
int main(void)
{
int c;
while ((c = getchar()) != EOF) {
if (c == ' ') {
putchar(c);
while((c = getchar()) == ' ' && c != EOF)
;
}
if (c == EOF)
break; /* the break keyword is mentioned
* in the introduction...
* */
putchar(c);
}
return 0;
} |
Je veux dire la comparaison c != EOF dans la deuxième boucle me semble superflue, puisque le but est d’exécuter la boucle tant que c = ' ' et elle n'est pas exécutée avec tout autre valeur (EOF compris).
Quelque chose m'échappe ou ai je raison ?