1
votes

Pourquoi while (1

int a = 2;   
while (1 < a < 5)  {
      printf("%d\n", a);
      a = a + 1;
}
In a C program, I have used the above code, but it is always counting infinitely. That means the test condition of the while loop is always true. But I could not understand why this is happening.

3 commentaires

Bienvenue sur Informatique ! Cela pourrait vous surprendre, mais votre question est hors sujet ici. Nous traitons des questions de science informatique, pas de questions de programmation. Veuillez consulter notre aide sur le sujet . Votre question pourrait être sur le sujet sur Stack Overflow .


Ce code vous aidera. printf ("% d \ n", 1 <-1); printf ("% d \ n", 1 <1); printf ("% d \ n", 1 <2); pr‌ intf ( "% d \ n", 1 <-1 <5); ‌ printf ("% d \ n", 1 <1 <5) ‌; printf ("% d \ n", 1 <2 <5‌ ); printf ("% d \ n", 1 <5 <‌ 5); printf ("% d \ n", 1 <6‌ <5); Ce qui se passe, c'est que le résultat d'une comparaison vaut 0 ou 1.


@burnabyRails Merci, c'est très utile. Je suppose que j'aurai besoin d'en savoir plus à ce sujet ...


3 Réponses :


0
votes

La boucle s'exécute un nombre infini de fois car la condition 1

Cela pourrait aider:

int a = 2;

tandis que (a <5)

{

printf ("% d \ n", a);

a = a + 1;

}


2 commentaires

mais, alors il doit arrêter de compter lorsque la valeur de a atteint 5.


Ici, la première condition en vrai qui est 1