bryter, etui, standard - 1

"Hei, Amigo!"

"Hei, Bilaabo! Så godt å se deg igjen. Bare forelesningene dine er så gode og forståelige. Ikke som denne Java Memory Model."

"Ja, Bilaabo vet hvordan man velger leksjoner. I dag skal jeg fortelle deg om bytteerklæringen."

"Jeg tror noen allerede har fortalt meg om det."

"Det gjorde Ellie. Så, Amigo vil ikke høre en leksjon om bytteerklæringen? Kanskje du begynner å undervise din egen?"

"Nei, jeg vil, jeg vil. La oss høre om bytteerklæringen."

"OK. I Java er det noe som kalles en switch-setning. Det er praktisk når du trenger å utføre visse handlinger avhengig av forskjellige verdier for en variabel."

Eksempel med bryter 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 - setningen lar deg hoppe til ønsket kodebit hvis variabelen som sendes til den, samsvarer med verdien som følger nøkkelordets store og små bokstaver.

Hvis i er 1, vil utførelsen hoppe til linjen merket «tilfelle 1».

Hvis i er 2, vil utførelsen hoppe til linjen merket «tilfelle 2».

Hvis i er 3, vil utførelsen hoppe til linjen merket «tilfelle 3».

"Hvis det ikke er noe hopp til noen av sakene, blir «standard»-blokken utført."

"Jeg skjønner. Og til høyre er den samme logikken, men implementert med if-utsagn?"

"Japp."

"Og hva er det med ordet "pause"? Du sa at det bare kan brukes i løkker?

"Ja, og her. Når break- setningen er utført, går vi umiddelbart ut av bryteren ."

"Men hvis break-setningen fjernes, vil alle linjene inne i bryteren bli utført til slutten."

Eksempel Utgang (for i = 1) Utgang (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

"Egentlig er kasus en etikett i koden. I switch-setningen hopper vi til neste etikett og begynner å utføre all koden til slutten av bryteren, eller til vi møter en break-setning."

"Så, hvis vi ikke skriver pause, vil linjen vi hopper til bli utført, etterfulgt av alle de andre linjene til den avsluttende klammeparentesen. Stemmer det?"

"Ja."

"Piece of cake. Men jeg liker å bruke if-utsagn bedre. De har ikke disse meningsløse pauseutsagnene."

"Det er sant at hvis uttalelser ofte er mer kompakte. Men en switch-setning er noen ganger mer lesbar."

"Sammenligne:"

Eksempel med bryter 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 si at den er mer lesbar."

"Ok, men hva med dette eksemplet?"

Eksempel med bryter 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, eksemplet ditt ser ikke helt riktig ut. Så jeg kan utelate break-setningen hvis jeg bruker retur?"

"Det stemmer. En returerklæring vil umiddelbart avslutte metoden."

"Det virker som om uttalelser alltid er mer kompakte. Men switch-setningen viste seg å være mer lesbar denne gangen."

"Puff, endelig."

"En ting til. Du trenger ikke å skrive standard på slutten. Hvis du ikke gjør det, vil ingenting skje hvis ingen av etikettene stemmer."

"Øh, akkurat. Som om-annet, men lesbart - mye mer lesbart!"

"Flott. Jeg er glad du likte leksjonen min."

"Åh, jeg glemte nesten det. Til å begynne med kunne du bare bruke primitive typer og enums i switch-setninger. Men nå har de lagt til støtte for 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;
 }
}

"Jepp. Praktisk, ikke sant?"

"Ja. Switch-uttalelser er bra!"