switch, case, default - 1

"Hej, Amigo!"

"Hej Bilaabo! Så godt at se dig igen. Kun dine foredrag er så gode og forståelige. Ikke som denne Java Memory Model."

"Ja, Bilaabo ved, hvordan man vælger undervisning. I dag skal jeg fortælle dig om skifteerklæringen."

"Jeg tror, ​​nogen allerede har fortalt mig om det."

"Det gjorde Ellie. Så Amigo ønsker ikke at høre en lektion om skifteerklæringen? Måske vil du begynde at undervise din egen?"

"Nej, jeg vil, jeg vil. Lad os høre om skifteerklæringen."

"OK. I Java er der noget, der kaldes en switch-sætning. Det er praktisk, når du skal udføre bestemte handlinger afhængigt af forskellige værdier af en variabel."

Eksempel med kontakt Tilsvarende kode
int i = 5;
switch(i)
{
 case 1:
  System.out.println("one");
  break;
 case 2:
  System.out.println("two");
  break;
 case 3:
  System.out.println("three");
  break;
 default:
  System.out.println("many");
}
int i = 5;
if (i == 1)
{
 System.out.println("one");
}
else if (i == 2)
{
 System.out.println("two");
}
else if (i == 3)
{
 System.out.println("three");
}
else
{
 System.out.println("many");
}

Switch - sætningen lader dig springe til det ønskede stykke kode, hvis variablen, der sendes til den, matcher den værdi, der følger efter nøgleordets store og små bogstaver.

Hvis i er 1, springer udførelsen til linjen mærket «tilfælde 1».

Hvis i er 2, springer udførelsen til linjen mærket «tilfælde 2».

Hvis i er 3, springer udførelsen til linjen mærket «tilfælde 3».

"Hvis der ikke springes til nogen af ​​sagerne, udføres "standard"-blokken."

"Jeg kan se. Og til højre er den samme logik, men implementeret ved hjælp af if-sætninger?"

"Ja."

"Og hvad er der med ordet 'pause'? Du sagde, at det kun kan bruges i loops?"

"Ja, og her. Når break- erklæringen udføres, forlader vi straks kontakten ."

"Men hvis break-sætningen fjernes, vil alle linjerne inde i switchen blive udført indtil slutningen."

Eksempel Output (for i = 1) Output (for i = 2)
switch(i)
{
 case 1:
  System.out.println("one");
 case 2:
  System.out.println("two");
 case 3:
  System.out.println("three");
 default:
  System.out.println("many"); }
en
to
tre
mange
to
tre
mange

"Faktisk er case en etiket i koden. I switch-sætningen hopper vi til den næste etiket og begynder at udføre al koden indtil slutningen af ​​skiftet, eller indtil vi møder en break-sætning."

"Så hvis vi ikke skriver pause, så vil den linje vi hopper til blive udført, efterfulgt af alle de andre linjer indtil den afsluttende bøjle. Er det rigtigt?"

"Ja."

"Piece of cake. Men jeg kan godt lide at bruge if-udsagn bedre. De har ikke disse meningsløse pauseudsagn."

"Det er rigtigt, at hvis udsagn ofte er mere kompakte. Men en switch-udsagn er nogle gange mere læsbar."

"Sammenligne:"

Eksempel med kontakt Tilsvarende kode
public String getName(int i)
{
 switch(i)
 {
  case 1:
   return "one";
  case 2:
   return "two";
  case 3:
   return "three";
  default:
   return "many";
}
public String getName(int i)
{
 if (i == 1)
  return "one";

 if (i == 2)
  return "two";

 if (i == 3)
  return "three";

return "many"
}

"Jeg vil ikke sige, at det er mere læseligt."

"Okay, men hvad med dette eksempel?"

Eksempel med kontakt Tilsvarende kode
public String getName(int i)
{
 switch(i)
 {
  case 1:
  case 2:
   return "one or two";
  case 3:
  case 4:
  case 5:
   return "three to five";
  default:
   return "many";
}
public String getName(int i)
{
 if (i == 1 || i == 2)
  return "one or two";

 if (i == 3 || i == 4 || i == 5)
  return "three to five";

return "many"
}

"Bilaabo, dit eksempel ser ikke helt rigtigt ud. Så jeg kan udelade pauseerklæringen, hvis jeg bruger retur?"

"Det er rigtigt. En returerklæring vil øjeblikkeligt forlade metoden."

"Det ser ud til, at hvis udtalelser altid er mere kompakte. Men switch-sætningen viste sig at være mere læsbar denne gang."

"Pha, endelig."

"En ting mere. Du behøver ikke at skrive standard til sidst. Hvis du ikke gør det, så sker der simpelthen ikke noget, hvis ingen af ​​etiketterne matcher."

"Øh, præcis. Ligesom hvis-andet, men læsbar - meget mere læsbar!"

"Fantastisk. Jeg er glad for, at du kunne lide min lektion."

"Åh, det glemte jeg næsten. Til at begynde med kunne du kun bruge primitive typer og enums i switch-udsagn. Men nu har de tilføjet understøttelse af Strings."

"Mener du, at jeg skriver dette?"

Eksempel
public int getNumber(String number)
{
 switch(number)
 {
  case "one":
   return 1;
  case "two":
   return 2;
  case "three":
   return 3;
  default:
   return -1;
 }
}

"Jep. Praktisk, ikke?"

"Ja. Switch-udsagn er fantastisk!"