Condition qui passe pas

mskhoot -  
loupius Messages postés 789 Statut Membre -
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

loupius Messages postés 789 Statut Membre 148
 
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.
1
Siluni
 
i==0?break : printf("%d\n",i);


Comme ça c'est mieu
-1