Instructions switch

Java intermédiaire

Jim White

Java Developer

Qu'est-ce qu'un commutateur ?

  • Switch remplit une fonction similaire à celle des instructions d'if-else.
    • Effectue certaines actions en fonction de certaines conditions.
    • Utilisé à la place de plusieurs conditions if-then-else
  • Considéré comme plus concis que plusieurs if-then-else
if (bonus == 10000) {
    System.out.println("Let's buy a car!");
} else if (bonus == 5000) {
    System.out.println("Let's take a trip!");
} else if (bonus == 1000) {
    System.out.println("Let's save!");
}
Java intermédiaire

Syntaxe du commutateur

switch (expression) {
    case value1:  // if (expression == value1)
        // statements
    case value2:  // if (expression == value2)
        // statements
    // use as many case statements as needed
}
Java intermédiaire

Exemple de commutateur

char direction = 'N';

switch (direction) {
    case 'E':  
        System.out.println("We are headed east.");
    case 'S':  
        System.out.println("We are headed south.");
    case 'W':  
        System.out.println("We are headed west.");
    case 'N':   
        System.out.println("We are headed north."); // This would be printed
}
Java intermédiaire

break

  • Empêche Java de poursuivre le traitement des cas restants.
    • Sans interruption, Java exécute les instructions du cas suivant jusqu'à ce qu'il rencontre une interruption.
char direction = 'W';

switch (direction) {
    case 'E':
        System.out.println("We are headed east.");
    case 'S':
        System.out.println("We are headed south.");
    case 'W':
        System.out.println("We are headed west."); // This would be printed
    case 'N':
        System.out.println("We are headed north."); // This would also be printed
}
Java intermédiaire

break permet de regrouper plusieurs cas :

char direction = 'N';

switch (direction) {
    case 'E':     
    case 'W':  
        System.out.println("We are headed east or west.");
        break;
    case 'S':  
    case 'N':
        System.out.println("We are headed south or north.");
        break;       
}
We are headed south or north.
Java intermédiaire

Par défaut

  • Un boîtier d'default s optionnel peut être ajouté à l'extrémité d'un commutateur.
    • Le cas par défaut n'a aucune valeur à comparer à l'expression.
    • Si aucune valeur de cas ne correspond à l'expression, les instructions par défaut sont exécutées.
    • default doit être le dernier cas dans un commutateur
  • default est un moyen d'avoir un cas « toutes les autres valeurs ».
char direction = 'z';

switch (direction) {
  case 'E':     
  case 'W':  
    System.out.println("To east or west.");
    break;
  case 'S':  
  case 'N':
    System.out.println("To south or north.");
    break; 
  default:
    System.out.println("We are lost.");
}
We are lost.
Java intermédiaire

Conditions conditionnelles et switch

  • Les conditionnels peuvent être employés pour accomplir la même tâche.
  • Travailler avec tous les types de données
char character = 'A';
if (character == 'A') {
    System.out.println("It's A");
} else if (direction =='B') {
    System.out.println("It's B");
} else {
    System.out.println("Unknown");
}
  • Le commutateur peut être plus facile à lire.
  • Fonctionne uniquement avec certains types de données tels que int, byte, short, char ou String
char character = 'A';
switch (character) {
  case 'A':
    System.out.println("It's A");
    break;
  case 'B':  
    System.out.println("It's B");
    break;
  default:
    System.out.println("Unknown");
}
Java intermédiaire

Passons à la pratique !

Java intermédiaire

Preparing Video For Download...