Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Commentez, partagez et proposez des Tutos en langage C !
La condition IF / ElSEIF / ELSE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2738
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#1 Message par Jérémy » mer. 16 mars 2016 11:32

Bonjour à tous,

Les conditions sont très souvent utilisées pour effectuer des actions en fonction du résultat de leurs résultats. Elles sont incontournables quelque soit votre programme.

1/ Le IF :

le If se traduit par "Si" en français. Il détermine la condition permettant d’exécuter ou non une portion de code.
Si on prend l'exemple "classique" d'un Bouton poussoir, on pourrait littéralement écrire.

Code : Tout sélectionner

Si (le BP est à 1) {
 ==> Je fais ceci
Se traduisant en C par

Code : Tout sélectionner

If (BP==1){
 ==> Allume une led


idea ! le == est un signe de comparaison et non d'affectation de valeur, cette erreur est très souvent commise.

Ici la condition est très simple, SI le BP est à 1 et on effectue une action définie. Implicitement, SI il est égale à 0, on ne fait donc rien de plus et on saute directement à la suite du programme.
Les conditions peuvent bien évidemment être plus complexes, par exemple en les combinant avec des fonctions logiques.

Par exemple :

Code : Tout sélectionner

Si ( (le Bp est à 1) ET ( que inter2 est à 0)  ET ( que contact3 est à 1){
 ==>  ==> Je fais ceci
Se traduisant par :

Code : Tout sélectionner

if ( (BP==1) && (Inter2==0) && (contact3==1) ){
 ==>  Je fais ceci





2/ Le ELSE :

Maintenant, si la condition n'est pas remplie peut être que l'on souhaiterai effectuer une action, plutôt que de laisser le programme se déroulé tranquillement. Pour cela il existe le ELSE.
Le ELSE peut se traduire en français par Sinon. Vous comprendrez aisément, le déroulement suivant :
SI la condition est vrai -> une effectue la première instruction
SINON -> On effectue la deuxième instruction (donc la condition n'est pas vrai)

Par exemple :

Code : Tout sélectionner

SI ( le BP est à 1){ //  appuyé
-> On allume la LED }
Sinon ( sous entendu que le BP est à 0){  // relâché
-> On éteint la LED }

Se traduisant par:

Code : Tout sélectionner

if ( (BP==)
  ==> {  Je fais ceci }
 Else  
 
==> { Je vais cela }


Dans cette configuration, nous pouvons effectuer un test et seulement deux actions suivant l'état du test. Soit la condition est remplie, soit elle ne l'ai pas. Cela peut être contraignant si l'on souhaite avoir un peu plus de choix dans la condition. tout n'est jamais tout blanc ou tout noir.

Imaginons maintenant que l'on souhaite allumé une led à chaque valeur de tension d'une batterie . si la batterie fait 1V on allume 1 led, 2V -> 2leds...... 5Volts -> 5leds.
Dans ce cas de figure, deux actions ne pourront pas allumer tous les états des leds. Nous allons pour ce faire utilisé le ElSE IF .

3/ Le ELSE IF :

Le Else If introduit une nouvelle condition quand la première n'est pas remplie. Ainsi nous n'aurons plus seulement 2 résultats possibles ( blanc ou noir), mais une multitude de résultats "le GRIS" avec autant de nuances qu'il y a de ELSE IF.

Littéralement cela donnera :

Code : Tout sélectionner


SI 
( la tension vaut 1Volt ){
->
 On allume 1 led
SINON 
, Si (la tension vaut 2V ){
->
 On allume 2 leds
|
|
|
SINON , Si (la tension vaut 5V ){
->
 On allume 5 leds
Se traduisant par :

Code : Tout sélectionner

If (Tension == 1){
     On allume une led ; }
Else If (Tension == 2){
     On allume 2 leds ; }
|
|
|
Else If (Tension == 5){
     On allume une 5 leds; 


On voit donc qu'a chaque palier de tension correspondra une condition pour détecter le palier. Si vous avez l’œil avertit vous remarquerez un défaut.

Attention!! Héééé OUIIII , il faut faire attention au résultat, car plusieurs conditions peuvent être remplies.

Contre exemple :
Imaginons maintenant que si à la place du == nous avions un >= et imaginons que la valeur de la tension lue soit de 3Volts. la condition 1 serait remplie, mais la condition 2 aussi , et la condition 3 aussi . dans notre exemple précédent , ce n'est pas gênant car au final c'est la condition 3 qui serait remplit , donc trois DEL d'allumées !. mais suivant votre programme cela peut être très gênant. Il y a des parades à cela, notamment la fonction Switch() que nous verrons ultérieurement, ou un ordre et des conditions mieux définies, pour éviter cet enchevêtrement.

Mais si je vous dis tout, il n'y aura plus de questions à poser sur le FORUM humour!!

J'ai peut être omis certaines choses importantes à vos yeux, ou fait des erreurs. Merci de me le signaler à la suite de ce post.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

La condition IF / ElSEIF / ELSE
sylvain54
Avatar de l’utilisateur
Amateur
Amateur
Messages : 194
Âge : 52
Enregistré en : août 2015
Localisation : Dans l'est de la France

#2 Message par sylvain54 » mer. 16 mars 2016 16:26

"Switch Casse"


c'est switch case. ;) mais autrement, c'est super bien expliqué :bravo:

++

La condition IF / ElSEIF / ELSE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2738
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#3 Message par Jérémy » mer. 16 mars 2016 17:21

sylvain54 a écrit :Source du message c'est switch case.

C'est corrigé ! Merci !

J'essaye de prendre des exemples simples et parlants pour les plus novices !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

La condition IF / ElSEIF / ELSE
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2828
Âge : 74
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#4 Message par paulfjujo » ven. 18 mars 2016 10:37

bonjour,


je dirais même que c'est

Code : Tout sélectionner

 switch()  
tout court... exit
Aide toi, le ciel ou FantasPic t'aidera

La condition IF / ElSEIF / ELSE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2738
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#5 Message par Jérémy » ven. 18 mars 2016 12:02

paulfjujo a écrit :Source du message e dirais même que c'est

Code : Tout sélectionner
switch()

C'est pas faux ! je re-corrige . Si vous voyez que ça comme erreur je suis plutôt satisfait :lol:
C'est sympa de l'avoir lu en tout cas. En espérant que ça puisse servir à quelqu'un.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

La condition IF / ElSEIF / ELSE
sylvain54
Avatar de l’utilisateur
Amateur
Amateur
Messages : 194
Âge : 52
Enregistré en : août 2015
Localisation : Dans l'est de la France

#6 Message par sylvain54 » ven. 18 mars 2016 22:24

On veille au grain :mrgreen:


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités