ngalih, kasus, standar - 1

"Halo, Amigo!"

"Hai, Bilaabo! Seneng banget bisa ketemu maneh. Mung ceramahmu sing apik lan bisa dingerteni. Ora kaya Model Memori Jawa iki."

"Ya, Bilaabo ngerti carane milih pelajaran. Dina iki aku bakal ngandhani babagan pernyataan switch."

"Aku rumangsa wis ana sing ngandhani babagan iki."

"Ellie iya. Dadi, Amigo ora pengin krungu pawulangan bab statement switch? Mungkin sampeyan bakal miwiti mulang dhewe?"

"Ora, aku pengin, aku pengin. Ayo krungu bab statement switch."

"OK. Ing Jawa, ana sing diarani switch statement. Iku trep nalika sampeyan kudu nindakake tumindak tartamtu gumantung ing macem-macem nilai saka sawetara variabel."

Conto karo ngalih Kode sing padha
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");
}

Pernyataan switch ngidini sampeyan mlumpat menyang potongan kode sing dikarepake yen variabel kasebut cocog karo nilai sing ngetutake kasus tembung kunci.

Yen i 1, eksekusi bakal mlumpat menyang baris sing ditandhani «kasus 1».

Yen i 2, banjur eksekusi bakal mlumpat menyang baris sing ditandhani «kasus 2».

Yen i 3, banjur eksekusi bakal mlumpat menyang baris sing ditandhani «kasus 3».

"Yen ora ana mlumpat menyang kasus apa wae, banjur blok "standar" dieksekusi."

"Aku weruh. Lan ing sisih tengen logika padha, nanging dipun ginakaken nggunakake yen statements?"

"Ya wis."

"Lan apa karo tembung 'break'? Sampeyan ngandika iku mung bisa digunakake ing loops?"

"Ya, lan ing kene. Nalika statement break dieksekusi, kita langsung metu saka saklar ."

"Nanging yen statement break dibusak, banjur kabeh baris ing saklar bakal kaleksanan nganti pungkasan."

Tuladha Output (kanggo i = 1) Output (kanggo 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"); }
siji
loro
telu
akeh
loro
telu
akeh

"Sejatine, cilik minangka label ing kode. Ing statement switch, kita mlumpat menyang label sabanjure lan miwiti nglakokake kabeh kode nganti pungkasan switch, utawa nganti ketemu statement break."

"Dadi, yen kita ora nulis break, banjur baris sing kita mlumpat bakal dieksekusi, ngiring dening kabeh baris liyane nganti brace nutup. Bener?"

"Ya."

"Piece of cake. Nanging aku seneng nggunakake yen statements luwih. Padha ora duwe iki statements break guna."

"Pancen yen statements asring banget kompak. Nanging statement switch kadhangkala luwih bisa diwaca."

"Bandhingake:"

Conto karo ngalih Kode sing padha
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"
}

"Aku ora bakal ngomong yen luwih bisa diwaca."

"Oke, nanging kepiye conto iki?"

Conto karo ngalih Kode sing padha
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, conto sampeyan ora katon bener. Dadi, aku bisa ngilangi statement break yen aku nggunakake bali?"

"Iku bener. A statement bali bakal langsung metu saka cara."

"Koyone yen statements tansah luwih kompak. Nanging statement ngalih dadi luwih bisa diwaca wektu iki."

"Wah, pungkasane."

"Salah maneh. Sampeyan ora kudu nulis standar ing pungkasan. Yen ora, ora ana sing bakal kelakon yen ora ana label sing cocog."

"Eh, persis. Kaya yen-liyane, nanging bisa diwaca-luwih bisa diwaca!"

"Apik. Aku bungah yen sampeyan seneng karo pelajaranku."

"Oh, aku meh kelalen. Kaping pisanan, sampeyan mung bisa nggunakake jinis primitif lan enums ing statement switch. Nanging saiki padha nambah support kanggo Strings."

"Maksudmu aku nulis iki?"

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

"Yo. Trep, ta?"

"Ya. Ganti statements apik!"