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

  1. 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
  2. Siluni
     
    i==0?break : printf("%d\n",i);


    Comme ça c'est mieu
    -1