a. Les Structures Conditionnelles

Les conditions sont l'une des fonctionnalités très importante en programmation, elle permettent au programme de décider lorsqu'il y a un choix à faire, c'est un peu comme un train qui prend une certaine direction selon l'orientation des railles.


La portée des blocs


En Java, la portée des blocs fait référence à la portée ou à la visibilité des variables définies à l'intérieur d'un bloc de code délimité par des accolades {}. Cela signifie qu'une variable déclarée dans un bloc de code est accessible uniquement à l'intérieur de ce bloc et devient inaccessible une fois que le bloc est terminé.


Qu'est-ce qu'un bloc de code ?

Un bloc de code est simplement un ensemble d'instructions Java entouré d'accolades {}. On retrouve des blocs dans des structures telles que :

  • - Les fonctions ou méthodes.
  • - Les boucles (for, while, etc.).
  • - Les conditions (if, else, etc.).


Exemple d'un un bloc de code :

public class BlockScopeExemple { // début du bloc de la class BlockScopeExemple
    
    public static void main(String[] args) { // début du bloc de la méthode main
        
        
        int x = 10;  // Variable accessible dans tout le main
        
        { // début du bloc intern 
            
            int y = 20;  // Variable locale au bloc interne
            System.out.println("x = " + x);  // Accès à 'x' : OK
            System.out.println("y = " + y);  // Accès à 'y' : OK


        } // début du bloc intern --> la variable y n'es plus accessible
        
        System.out.println("x = " + x);  // Accès à 'x' : OK
        // System.out.println("y = " + y);  // Erreur : 'y' n'est pas accessible ici



    } // fin du bloc de la méthode main


    
}// fin du bloc de la class BlockScopeExemple


Dans cet exemple on 3 blocs :

  • - le bloc de la class BlockScopeExemple, tout ce qui s'y trouve n'est plus accessible après ce bloc :
public class BlockScopeExemple { // début du bloc de la class BlockScopeExemple
  

    
}// fin du bloc de la class BlockScopeExemple


  • - le bloc de la méthode main, qui contient 'x', un block intern {} et une instruction :
public static void main(String[] args) { // début du bloc de la méthode main
        
        
        int x = 10;  // Variable accessible dans tout le main
        
        { // début du bloc intern 
            
            int y = 20;  // Variable locale au bloc interne
            System.out.println("x = " + x);  // Accès à 'x' : OK
            System.out.println("y = " + y);  // Accès à 'y' : OK


        } // début du bloc intern --> la variable y n'es plus accessible
        
        System.out.println("x = " + x);  // Accès à 'x' : OK
        // System.out.println("y = " + y);  // Erreur : 'y' n'est pas accessible ici


} // fin du bloc de la méthode main


  • - le bloc intern. A la fin de bloc la variable y disparaît et n'est plus disponible.
 { // début du bloc intern 
            
            int y = 20;  // Variable locale au bloc interne
            System.out.println("x = " + x);  // Accès à 'x' : OK
            System.out.println("y = " + y);  // Accès à 'y' : OK


} // début du bloc intern --> la variable y n'es plus accessible
        


Opérateurs de comparaison et logiques utilisés dans if :


Les conditions dans une instruction if utilisent des opérateurs de comparaison ou des opérateurs logiques pour évaluer une expression en true ou false.

Opérateurs de comparaison :

  • == : égal à
  • != : différent de
  • > : supérieur à
  • < : inférieur à
  • >= : supérieur ou égal à
  • <= : inférieur ou égal à

Opérateurs logiques :

  • && : ET logique (vrai si les deux conditions sont vraies)
  • || : OU logique (vrai si au moins une des conditions est vraie)
  • ! : NON logique (inverse une condition)



La structure conditionnelle if en Java


La condition if en Java est une structure de contrôle qui permet d'exécuter un bloc de code uniquement si une certaine condition est vraie. Si la condition est vraie (évaluée à true), le bloc de code à l'intérieur du if sera exécuté. Sinon, le programme passe à la suite sans exécuter ce bloc.


Syntaxe de base :

if (condition) {
    // Bloc de code à exécuter si la condition est vraie
}


Exemple :

Ici le code à l'intérieur du if va s'exécuter car la condition age >= 18 est vraie (age=20)

public class ExempleIf {
    public static void main(String[] args) {
        int age = 20;
        
        if (age >= 18) {
            System.out.println("Vous êtes majeur.");
        }
    }
}


Ajout de else :

On peut ajouter une alternative lorsque la condition est fausse, vous pouvez utiliser la clause else.

Syntaxe:

if (condition) {
    // Bloc de code à exécuter si la condition est vraie
} else {
    // Bloc de code à exécuter si la condition est fausse
}


Exemple :

public class Condition {
    public static void main(String[] args) {
        int age = 16;
        
        if (age >= 18) {
            System.out.println("Vous êtes majeur.");
        } else {
            System.out.println("Vous êtes mineur.");
        }
    }
}

Ici le programme va afficher "Vous êtes mineur." car age est 16 qui est inferieur à 10, donc la condition age >=18 est fausse.


Ajout de else if :

Si vous avez plusieurs conditions à vérifier, vous pouvez utiliser des blocs else if pour tester différentes situations.

Syntaxe :

if (condition1) {
    // Bloc de code à exécuter si condition1 est vraie
} else if (condition2) {
    // Bloc de code à exécuter si condition1 est fausse mais condition2 est vraie
} else {
    // Bloc de code à exécuter si toutes les conditions précédentes sont fausses
}


Exemple :

public class Condition {
    public static void main(String[] args) {
        
        int temperature = 25;
        
        if (temperature > 30) {
            System.out.println("Il fait chaud.");
        } else if (temperature > 20) {
            System.out.println("Il fait bon.");
        } else {
            System.out.println("Il fait froid.");
        }        
    }
}



Utilisation de blocs vides ou simplifiés :

Si vous avez une seule instruction à exécuter dans un if ou un else, vous pouvez omettre les accolades {}. Cependant, il est généralement recommandé d'utiliser des accolades pour plus de clarté, surtout dans les projets plus complexes.

if (age >= 18) 
    System.out.println("Vous êtes majeur.");
else 
    System.out.println("Vous êtes mineur.");