Java Language Déclaration de changement


Exemple

L'instruction switch est l'instruction de branche multi-voies de Java. Il est utilisé pour remplacer les chaînes long if - else if - else et les rendre plus lisibles. Cependant, à la différence if les déclarations, on ne peut pas utiliser les inégalités; chaque valeur doit être définie concrètement.

L'instruction switch comporte trois composants essentiels:

  • case : Valeur évaluée pour l'équivalence avec l'argument de l'instruction switch .
  • default : il s'agit d'une expression facultative, catch-all, si aucune des instructions de case n'est évaluée à true .
  • Achèvement complet de la déclaration de case ; En général, break : Ceci est nécessaire pour empêcher l'évaluation indésirable d'autres déclarations de case .

À l'exception de continue , il est possible d'utiliser n'importe quelle instruction qui entraînerait l' achèvement brutal d'une déclaration . Ceci comprend:

  • break
  • return
  • throw

Dans l'exemple ci-dessous, une instruction de switch typique est écrite avec quatre cas possibles, y compris la default .

Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
switch (i) {
    case 0:
        System.out.println("i is zero");
        break;
    case 1:
        System.out.println("i is one");
        break;
    case 2:
        System.out.println("i is two");
        break;
    default:
        System.out.println("i is less than zero or greater than two");
}

En omettant les break ou toute déclaration qui aboutirait brusquement, nous pouvons tirer parti de ce que nous appelons des cas «tombants», qui s’évaluent en fonction de plusieurs valeurs. Cela peut être utilisé pour créer des plages pour une valeur réussie, mais n'est pas aussi flexible que les inégalités.

Scanner scan = new Scanner(System.in);
int foo = scan.nextInt();
switch(foo) {
    case 1:
        System.out.println("I'm equal or greater than one");
    case 2:
    case 3:    
        System.out.println("I'm one, two, or three");
        break;
    default:
        System.out.println("I'm not either one, two, or three");
}

Dans le cas de foo == 1 le résultat sera:

I'm equal or greater than one
I'm one, two, or three

Dans le cas de foo == 3 le résultat sera:

I'm one, two, or three
Java SE 5

L'instruction switch peut également être utilisée avec enum s.

enum Option {
    BLUE_PILL,
    RED_PILL
}

public void takeOne(Option option) {
    switch(option) {
        case BLUE_PILL:
            System.out.println("Story ends, wake up, believe whatever you want.");
            break;
        case RED_PILL:
            System.out.println("I show you how deep the rabbit hole goes.");
            break;
            
    }
}
Java SE 7

L'instruction switch peut également être utilisée avec String s.

public void rhymingGame(String phrase) {
    switch (phrase) {
        case "apples and pears":
            System.out.println("Stairs");
            break;
        case "lorry":
            System.out.println("truck");
            break;
        default:
            System.out.println("Don't know any more");
    }
}