Logo creanet 2.0
Les conditions
 
Les conditions sont la base des programmes un temps soit peu évolués. Elles permettent de ne pas faire toujours la même chose et d'éxécuter une partie de code que si la condition est remplie.

Prenons un exemple. Nous demandons à l'utilisateur de rentrer son âge. Nous voudrions afficher "Tu es un adulte!" ou "Tu es encore un enfant!" selon l'âge rentré (si il a plus de 18 ans, on affichera la première phrase, sinon la deuxième).


Voyons maintenant comment créer une condition:

          if (condition)
          {
            //Code si la condition est vraie.
          }


Vous voyez par vous même que ce n'est pas très dur. En plus le "if" veut dire "si" en anglais, ce qui donne littéralement:


Si [la condition] alors je fais ce qu'il y a entre accolades.


Passons maintenant à la condition à proprement parlé.

Nous pouvons demander, en C plusieurs choses en conditions, les voici:

-Si égal.
-Si supérieur.
-Si inférieur.
-Si inférieur ou égal.
-Si supérieur ou égal.
-Si différent de.

Nous allons les voir un par un (rassurez vous il n'y a qu'un tout petit détails qui change à chaque fois).

Si égal:

      int mavariable = 25;

          if (mavariable == 25)
          {
            //Code si la condition est vraie.
          }

Dans cet exemple on regarde si la variable "mavariable" vaut 25. Ici il est évident que oui puisque nous la déclarons juste au dessus, mais imaginez que "mavariable" soit inconnue et que ça soit le spectateur qui la modifie.
 
      panneau attentionATTENTIONpanneau attention
Il y a bien deux signes égal !


Si supérieur à:

      int mavariable = 25;

          if (mavariable > 25)
          {
            //Code si la condition est vraie.
          }

Ce code regarde si "mavariable" est supérieure à 25. Si oui il éxécute ce qu'il y a entre accolades, si non il ne fait rien.


Si inférieur à:

Je pense que vous pouvez le deviner tout seul:

      int mavariable = 25;

          if (mavariable < 25)
          {
            //Code si la condition est vraie.
          }

On vérifie si "mavariable" est plus petit que 25.



Je pense que vous avez compris le principe. Maintenant je vous donne les signes et je passe les commentaires.

Si inférieur ou égal à:

      int mavariable = 25;

          if (mavariable <= 25)
          {
            //Code si la condition est vraie.
          }


Si supérieur ou égal à:

      int mavariable = 25;

          if (mavariable >= 25)
          {
            //Code si la condition est vraie.
          }


Si différent de:

      int mavariable = 25;

          if (mavariable != 25)
          {
            //Code si la condition est vraie.
          }




Vous voyez, c'est super simple! Un petit exemple que vous pouvez tester:

#include <stdio.h>
#include <stdlib.h>


int main()
{
    printf("Veuillez rentrer votre age: ");

    int age = 0;
    scanf("%d", &age);

    if(age >= 18)
    {
    printf("Ah! Vous avez %d ans et vous etes donc majeur!", age);
    }

    if(age < 18)
    {
    printf("Ah! Vous avez %d ans et vous etes donc mineur!", age);
    }

    return 0;
}
 
Ce qui donne:

age condition C


Il y a cependant, quelques choses encore à voir sur les conditions, comme:

-Le else.
-Le else if.
-Le switch.
-Plusieurs conditions dans une.
-Les booléens.


Allez comme je sens que vous trépignez d'impatience à l'annonce de ce menu je vais tout vous expliquer!Smiley rigole


Else:

Else veut dire "sinon" en anglais. Il est très pratique car permet de rendre son code beaucoup plus lisible et beaucoup moins complexe. Il suffit de placer, après avoir fait un if, un else et ,entre accolades, le code à exécuter si la première condition n'est pas remplie.

Reprenons le même exemple que tout à l'heure mais en rajoutant le else:


#include <stdio.h>
#include <stdlib.h>


int main()
{
    printf("Veuillez rentrer votre age: ");

    int age = 0;
    scanf("%d", &age);

    if(age >= 18)
    {
    printf("Ah! Vous avez %d ans et vous etes donc majeur!", age);
    }

    else
    {
    printf("Ah! Vous avez %d ans et vous etes donc mineur!", age);
    }

    return 0;
}

C'est quand même beaucoup plus lisible! Smiley souris



Esle if:

On peut le traduire littéralement par "sinon si".

On pourrait le mettre comme ceci dans un code:

Si l'âge est égal à 24 ans alors fait ça.

Sinon si l'âge est égal à 25 ans fait ceci.


Bref c'est un peut un if amélioré.


Le switch:

Bon pour l'instant c'est correct, nous n'avons pas marqué beacoup de conditions. Mais imaginez si vous deviez faire énormément de conditions d'affilé pour faire à chaque fois une action différente. Cela donnerait quelque chose comme:

if(machin == 2)
{
}

if(machin == 3)
{
}

if(machin == 4)
{
}

if(machin == 5)
{
}

if(machin == 6)
{
}

................

Je vous l'accorde ce code est complétement stupide mais c'est juste pour cerner le problème.


Le switch permet de faire une zoli' présentation de toutes ces conditions là. Voyons ce que cela donnerait avec le switch. Je vous montre et je vous explique tout aprèsSmiley souris

    switch(machin)
    {
        case 2:
        break;

        case 3:
        break;

        case 4:
        break;

        case 5:
        break;

        case 6:
        break;
    }


Il suffit donc, pour faire un switch, d'écrire "switch" puis entre parenthèse le nom de la variable à tester et entre les accolades mettre un case X: (où X est ici un chiffre mais peut très bien être une lettre ou autre chose) puis finir par mettre un break.

Le break sert juste à indiquer que la condition s'arrête ici (un peu comme l'accolade de fin dans les conditions "classiques").

Si vous voulez faire une condition dans un switch qui dirait "si aucune condition n'est vraie alors fait ça" il suffit de mettre au lieu d'un case un default comme ceci:


    switch(machin)
    {
        case 2:
        break;

        case 3:
        break;

        case 4:
        break;

        case 5:
        break;

        case 6:
        break;

        default:
//On met ici le code à éxécuter si aucune des autres conditions n'est vraie.
        break;

    }

Voilà, vous savez tout du switchSmiley souris



Deux conditions dans une:


Imaginons maintenant que vous souhaitez vérifier si la personne est majeur ET si oui si la variable "test" est égale à 10 (ici c'est évident, mais il peut arriver que l'on ne connaisse pas dès le départ la valeur d'une variable).

On ferait avec nos connaissances actuelles quelque chose ressemblant à ça:


#include <stdio.h>
#include <stdlib.h>


int main()
{
    printf("Veuillez rentrer votre age: ");

    int age = 0;
    int test = 10;

    scanf("%d", &age);

    if(age >= 18)
    {
         if(test == 10)
         {
    printf("Inscription acceptee!");
         }
    }

    else
    {
    printf("Ah! Vous avez %d ans et vous etes donc mineur! Inscription refusee!", age);
    }

    return 0;
}



Mais il est lourd de devoir écrire une condition dans une autre. En plus il n'y a, ici, que deux conditions, mais imaginez plus....

Mais je vais maintenant vous montrer que l'on peut fusionner les conditions.

Voici exactement le même code mais amélioré avec des conditions multiples dans une:

#include <stdio.h>
#include <stdlib.h>


int main()
{
    printf("Veuillez rentrer votre age: ");

    int age = 0;
    int test = 10;

    scanf("%d", &age);

    if(age >= 18 && test == 10)
    {
    printf("Inscription acceptee!");
    }

    else
    {
    printf("Ah! Vous avez %d ans et vous etes donc mineur! Inscription refusee!", age);
    }

    return 0;
}


Je vous l'accorde ce n'est pas très utile pour l'instant. Mais croyez moi, c'est super utile quant il y a plusieurs variables à tester en même temps. Vous verrez de quoi je veux parler à partir du moment où nous apprendrons les boolééens, cela deviendra beaucoup plus utileSmiley souris



Passons aux explications:

Vous pouvez, dans une condition, faire ceci:

if(condition1 leSigne condition2 .....)


La "condition1" est une condition comme nous l'avons déjà vu, exemple: age == 18 (qui vérifie pour rappel que la variable age est bien égale à 18).

"Condition2" est exactemement la même chose.


Maintenant passons au signe entre les deux conditions (notez que vous pouvez mettre autant de conditions que vous le souhaitez dans une seule! Il suffit de mettre un des signes que nous allons voir entre chacune d'entre elles).

le signe && représente le "et".
le signe ! représente le "si ... faux".
le signe || représente le "ou".


Par exemple si vous souhaitez exécuter une instruction seulement si variable1 est égale à 10 et que variable2 est inférieure à 3 vous allez faire comme ceci:

if(variable1 == 10 && variable2 < 3)
{
     //Instruction.
}

Et c'est exactement le même fonctionnement pour le "ou". Le "si..faux" est un peu plus spécial, c'est d'ailleurs pour cela que nous allons voir ici son fonctionnement. Mais avant ça, nous allons nous intéresser aux variables booléennes (rassurez vous c'est très simpleSmiley souris).

Une variable booléenne est une variable qui ne peut prendre que deux et seulement deux valeurs différentes. On s'en sert énormément en programmation pour dire vrai ou faux mais elle peut très bien vouloir dire autre chose comme noir et blanc, ouvert fermé, etc..

Imaginons pour notre exemple que le nombre 0 vaut faux et que le nombre 1 vaut vrai.

Avec une condition comme ceci:

int variable = 1;

if(variable)
{
    //Intruction.
}


Vous allez certainement me dire que cela ne veut rien dire, mais pourtant...si!

Regardez: la condition dit: "si la variable est vrai".

Si vous vouliez dire si la variable n'est pas vrai alors il faudrait écrire:

int variable = 1;

if(!variable)
{
    //Intruction.
}

Allez c'est pas si compliqué que ça la programmation! Smiley rigole

Vous êtes maintenant des dieux avec les conditions! Entraînez-vous car ce chapitre est primordial! Il était certes long et conséquent mais rassurez vous la suite n'est pas plus dur! Juste quelques choses de nouvelles à chaque chapitreSmiley souris. Nous allons maintenant voir dans le chapitre suivant les opérations mathématiques qui sont elles aussi très importantes.
                                                                                         
                                                                                                                                                       TP: Programme de convertion Celsius-fahrenheit                      Les opérations mathématiques
























 
 
 



Créer un site
Créer un site