Les structures conditionnelles ???? IF IF IF ELSE ELSE ELSE...
Résolu/Fermé
Samiko5580
Messages postés
7
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
9 septembre 2014
-
16 oct. 2012 à 12:34
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 5 nov. 2012 à 08:32
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 5 nov. 2012 à 08:32
A voir également:
- Les structures conditionnelles ???? IF IF IF ELSE ELSE ELSE...
- If exist - Forum Programmation
- Date if en francais excel - Forum Programmation
- Bios has been reset please reconfigure a bios setup items if needed - Forum BIOS
- {Batch} IF NOT EXIST <mon folder> ne fonctionne pas ✓ - Forum Autoit / batch
- If char ✓ - Forum Programmation
2 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
16 oct. 2012 à 12:46
16 oct. 2012 à 12:46
Salut.
if else forme une seule instruction, elles ne sont pas croisable.
Pour que ça soit plus clair, tu peut mettre des accolades, en partant du if le plus imbriqué :
if else forme une seule instruction, elles ne sont pas croisable.
Pour que ça soit plus clair, tu peut mettre des accolades, en partant du if le plus imbriqué :
if(a>0) { if(a>1) { cout<<a; } else { cout<<a-1; } } else { cout<<"coucou"; }
Samiko5580
Messages postés
7
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
9 septembre 2014
16 oct. 2012 à 12:53
16 oct. 2012 à 12:53
if(a>0)
{ \\donc la je peux mettre une instruction ici ? cout<<"Hello"<<endl;
if(a>1)
{
cout<<a;
}
else
{
cout<<a-1;
}
}
else
{
cout<<"coucou";
}
{ \\donc la je peux mettre une instruction ici ? cout<<"Hello"<<endl;
if(a>1)
{
cout<<a;
}
else
{
cout<<a-1;
}
}
else
{
cout<<"coucou";
}
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
16 oct. 2012 à 14:07
16 oct. 2012 à 14:07
avec des accolades : oui, sans : non.
Freedomsoul
Messages postés
509
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
17 avril 2013
97
16 oct. 2012 à 14:27
16 oct. 2012 à 14:27
Si il n'y a pas d'accolade, on considère que seul l'instruction suivante est conpris dans le if
ex:
et identique a:
Dans les cas précédant on teste forcément les 2 conditions alors que si l'on mets les accolades avec le premier if qui englobe tout, si la premier if est faux alors on ne testera pas le deuxième
et donc différnete si l'on met:
ex:
if (a>2) cout<<2 if (a>1) cout<<1 else cout<<3
et identique a:
if (a>2) { cout<<2} if (a>2) { cout<<2 } else { cout<<3 }
Dans les cas précédant on teste forcément les 2 conditions alors que si l'on mets les accolades avec le premier if qui englobe tout, si la premier if est faux alors on ne testera pas le deuxième
et donc différnete si l'on met:
if (a>2) { cout<<2 if (a>1) cout<<1 else cout<<3 }
Samiko5580
Messages postés
7
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
9 septembre 2014
31 oct. 2012 à 17:49
31 oct. 2012 à 17:49
Imaginons dans ce cas de figure par exemple, comment le résoudre ??? C'est là que je me perd :)
#include <iostream> using namespace std; int main() { int nbA,nbB,nbC; cout<<"Introduisez 3 nombres et je vous les affiches dans l'ordre croissant. "<<endl; cout<<"Nombre A : "; cin>>nbA; cout<<"Nombre B : "; cin>>nbB; cout<<"Nombre C : "; cin>>nbC; if (nbA<nbB){ if (nbB<nbC){ cout<<nbA<<nbB<<nbC<<endl; } else{ cout<<nbA<<nbC<<nbB<<endl; } } else if (nbC<nbB){ if (nbB<nbA){ cout<<nbC<<nbB<<nbA<<endl; } else{ cout<<nbC<<nbA<<nbB<<endl; } } else{ cout<<nbB<<nbC<<nbA<<endl; } return 0; }
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
31 oct. 2012 à 18:35
31 oct. 2012 à 18:35
je ne vois pas où est le problème, d'autant que l'indentation est nickel.
Dans ton cas, le else du premier if n'est pas suivie d'accolade, il ne concerne que l'instruction suivante. On peut considérer le if(nbC<nbB){}else{} comme une seule instruction dans ce contexte.
Dans ton cas, le else du premier if n'est pas suivie d'accolade, il ne concerne que l'instruction suivante. On peut considérer le if(nbC<nbB){}else{} comme une seule instruction dans ce contexte.
Samiko5580
Messages postés
7
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
9 septembre 2014
31 oct. 2012 à 18:41
31 oct. 2012 à 18:41
Ce qui est bizarre c'est quand je tape: _ 2 1 3 il me met 1 3 2
_ 2 3 1 il me met 2 1 3
Pour le reste nickel je comprend vraiment pas :( Quelqu'un c'est m'expliqué mon érreur cars là je ne vois vraiment pas....
_ 2 3 1 il me met 2 1 3
Pour le reste nickel je comprend vraiment pas :( Quelqu'un c'est m'expliqué mon érreur cars là je ne vois vraiment pas....