Condition qui passe pas

Bonjour,

Quelqu'un pourrait m'expliquer pourquoi ceci ne marche pas:

#include<stdio.h>
void main()
{
	short int i=10;
		while(i--)
		{
		i==0?break;:printf("%d\n",i);
		}
}


2 réponses

  • Votes
  • Date
  • Date décroissante
  1. i==0?break;:printf("%d\n",i);
    Je ne pense pas que cette expression puisse passer l'étape de la compilation.
    En effet, cette ligne est en fait une expression qui doit pouvoir être évaluée; on doit pouvoir écrire quelque chose comme:
    a = b > 0 ? expression1 : expression2;
    Ceci est interprété comme: Si 'b' est positif, alors 'expression1' est évaluée et le résultat est affecté à 'a'. Or dans ton cas il est impossible d'évaluer 'break'.
    Bonne continuation.