Java >> Java tutorial >  >> Tag >> switch

Java - switch case, Flere tilfælde kalder den samme funktion

Du skal bruge case nøgleord for hver streng som dette :

switch (str) {
    //which mean if String equals to
    case "apple":      // apple
    case "orange":     // or orange
    case "pieapple":   // or pieapple
        handleFruit();
        break;
}

Rediger 02/05/2019

Java 12

Fra Java 12 er der foreslået en ny syntaks for switch-case, så for at løse dette problem er det her måden:

switch (str) {
    case "apple", "orange", "pieapple" -> handleFruit();
}

Nu kan du bare foretage valgene adskilt af komma, pilen -> derefter den handling, du vil udføre.

En anden syntaks er også :

overveje, at hvert tilfælde returnerer en værdi, og du vil indstille værdier i en variabel, lad os antage, at handleFruit() returner en String den gamle syntaks skal være :

String result;  //  <-------------------------- declare 
switch (str) {
    //which mean if String equals to
    case "apple":      // apple
    case "orange":     // or orange
    case "pieapple":   // or pieapple
        result = handleFruit();  //      <----- then assign
        break;
}

nu med Java 12, kan du gøre det sådan her :

String result = switch (str) { //  <----------- declare and assign in one shot
    case "apple", "orange", "pieapple" -> handleFruit();
}

God syntaks


Java understøtter fald-through, når du ikke har nogen break :

case "apple":
case "orange":
case "pieapple":
    handleFruit();
    break;

Du fik fejl, fordi du brugte komma mellem sagsforespørgsler. For at definere flere sager skal du bruge semikolonso som dette.

switch (str) {
case "orange": case "pineapple": case "apple":
     handleFruit();
     break;
}

Java tag