- if...else
- ?:
if...else
Comme son nom semble l'indiquer, la structure conditionnelle permet d'influer sur le deroulement du programme, suivant certains conditions.
On utilise pour cela if, dont voici la syntaxe :
if(condition)instruction;
Si condition est évalué comme vrai (c'est à dire comme étant diférent de 0), instruction est executé.
Exemple :
#include <stdio.h>
int main(){
int heure=21;
if(heure >= 19)puts("Bonsoir");/* SI heure > 19 ALORS Bonsoir*/
return 0;
}
Le code ci-dessus affiche la chaïne Bonsoir si la variable heure est supérieur à 19. Dans le cas contraire,
rien ne se passe. On peut alors modifier ce comportement, en utilisant une syntaxe plus élaborée, avec else.
Voici la syntaxe d'une telle structure :
if(condition)instruction;
else instructionalternative;
Nous pouvons alors developper un peu plus notre programme :
#include <stdio.h>
int main(){
int heure=21;
if(heure >= 19)puts("Bonsoir");/* SI heure > 19 ALORS Bonsoir*/
else puts("Bonjour");/* SINON Bonjour*/
return 0;
}
Il est egalement possible de combiner des if dans des else. On peut ainsi utiliser plusieurs conditions dans une même structure :
#include <stdio.h>
int main(){
int heure=21;
if(heure >= 23)
puts("Bonne nuit");/* SI heure > 23 ALORS Bonne nuit */
else if(heure >= 19)
puts("Bonsoir");/* SINON SI heure > 19 ALORS Bonsoir */
else if(heure == 12)
puts("Bon appetit");/* SINON SI heure == 12 ALORS Bon appetit */
else
puts("Bonjour");/* SINON Bonjour */
return 0;
}
Vous remarquez que nous avons étudié soigneusement l'ordre d'apparition des conditions : si nous avions placé if(heure > 19) en première
position, le programme n'aurai jamais affiché Bonne nuit même si heure était quand même supérieur à 23.
Mais que ferions-nous si nous avions plusieurs instructions à executer pour une seule condition ?
Et bien nous utiliserions tout simplement ce que l'on appelle un bloc d'instructions. Un bloc d'instructions est composé d'une série d'instructions
placées entre accolades ({ et }).
On peut alors écrire :
#include <stdio.h>
int main(){
int age=19;
if(age >= 77){/* SI age >= 77 ALORS ...*/
printf("Hé pépé!\n");/* ... Hé pépé! ...*/
printf("C'est pas pour toi!");/* ... C'est pas pour toi!*/
}
else if(age >= 18){/* SI age >= 18 ALORS ...*/
printf("C'est bon!\n");/* ... C'est bon! ...*/
printf("Vous pouvez rentrer");/* ... Vous pouvez renter*/
}
else{/* SINON ...*/
printf("Dégage, minus!\n");/* ... dégage, minus !*/
printf("Rentre vite chez toi");/* ... Rentre vite chez toi*/
}
return 0;
}
Note : le caractère \n dans les chaînes de caractères permet d'effectuer un retour à la ligne.
?:
Le C possede un opérateur bien pratique dans certains cas : ?:.
Ce drole de signe doit se comprendre ainsi :
condition ? ValeurSiVrai : ValeurSiFaux;
Si condition est évalué comme vrai, l'opérateur renvoi ValeurSiVrai. Si il est évalué comme étant faux, il renvoi ValeurSiFaux.
Bien que nous n'ayons pas encore étudié les chaînes de caractères, l'exemple suivant est tout de même instructif :
#include <stdio.h>
int main(){
int nombre = 5;
char *etat = (nombre % 2 == 0 ? "paire" : "impaire");
printf("Le nombre %d est %s", nombre, etat);
return 0;
}
|