1. Operator pilihan ganda:switch

Jawa nduweni operator menarik liyane sing diwarisake saka grandpappy (C++). Kita ngomong babagan switchpernyataan kasebut. Kita uga bisa nyebat operator pilihan ganda. Iku katon rada rumit:

switch(expression)
{
   case value1: code1;
   case value2: code2;
   case value3: code3;
}

Ekspresi utawa variabel dituduhake ing kurung. Yen regane ekspresi kasebut value1, mesin Java wiwit ngeksekusi code1. Yen ekspresi padha karo value2, eksekusi mlumpat menyang code2. Yen ekspresi padha karo value3, banjur code3dieksekusi.

Tuladha:

Kode Output konsol
int temperature = 38;

switch(temperature)
{
   case 36: System.out.println("Low");
   case 37: System.out.println("Normal");
   case 38: System.out.println("High");
}
High

2. breakpratelan ingswitch

Fitur penting saka switchstatement yaiku program kasebut mung mlumpat menyang baris sing dibutuhake (menyang blok kode sing dibutuhake) lan banjur nglakokake kabeh blok kode nganti pungkasan file switch. Ora mung blok kode sing cocog karo nilai ing switch, nanging kabeh blok kode nganti pungkasan switch.

Tuladha:

Kode Output konsol
int temperature = 36;

switch(temperature)
{
   case 36: System.out.println("Low");
   case 37: System.out.println("Normal");
   case 38: System.out.println("High");
}
Low
Normal
High

Diwenehi suhu 36, program bakal ngetik switchstatement, mlumpat menyang lan nglakokaké pamblokiran kode pisanan (kasus pisanan), banjur cheerfully nglakokaké liyane saka pamblokiran kode.

Yen sampeyan pengin nglakokake mung siji blok kode - blok kode sing digandhengake karo kasus sing cocog - sampeyan kudu mungkasi blok kasebut kanthi breakstatement;

Tuladha:

Kode Output konsol
int temperature = 36;

switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
}
Low

Sampeyan bisa ngilangi breaking kasus pungkasan saka switchstatement, amarga pemblokiran iku pungkasan karo utawa tanpa statement break.


3. Tindakan standar:default

Titik penting liyane. Apa sing kedadeyan yen ora ana kasus sing kadhaptar ing switchcocog karo ekspresi ing kurung?

Yen kasus sing cocog ora ditemokake, pratelan liyane switchbakal dilewati, lan program bakal terus dieksekusi sawise kurungan kriting mungkasi switchpernyataan kasebut.

Sing jarene, sampeyan uga bisa nggawe switchstatement tumindak kaya cabang liya ing if-elsestatement. Kanggo nindakake iki, gunakake defaulttembung kunci.

Yen ora ana cases ing switchblok sing cocog karo nilai ekspresi lan duwe switchblok default, blok standar bakal dieksekusi. Tuladha:

Kode Output konsol
int temperature = 40;
switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
      break;
   default:
      System.out.println("Call an ambulance");
}
Call an ambulance

4. Mbandhingaké switchlanif-else

Pernyataan kasebut switchmeh padha karo if-elsepernyataan, mung luwih rumit.

Sampeyan bisa tansah nulis ulang kode statement switchminangka sawetara ifstatements. Tuladha:

Kode karo switch Kode karo yen-liyane
int temperature = 40;
switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
      break;
   default:
      System.out.println("Call an ambulance");
}
int temperature = 40;

if (temperature == 36)
{
   System.out.println("Low");
}
else if (temperature == 37)
{
   System.out.println("Normal");
}
else if (temperature == 38)
{
   System.out.println("High");
}
else
{
   System.out.println("Call an ambulance");
}

Kode ing sisih kiwa bakal dianggo persis padha karo kode ing sisih tengen.

Rantai pirang-pirang if-elsestatement luwih disenengi nalika ifstatement ngemot macem-macem ekspresi kompleks ing saben kasus sing kapisah.



5. Ukara-ukara apa wae kang bisa digunakake ing switchtuturan?

Ora kabeh jinis bisa digunakake minangka caselabel ing switchstatement. Sampeyan bisa nggunakake literal saka jinis ing ngisor iki:

  • jinis integer: byte, short, int,long
  • char
  • String
  • enumjinis apa wae

Sampeyan ora bisa nggunakake jinis liyane minangka label cilik.

Conto nggunakake statement enuming njero switch:

Day day = Day.MONDAY;
switch (day)
{
   case MONDAY:
      System.out.println("Monday");
      break;
   case TUESDAY:
      System.out.println("Tuesday");
      break;
   case WEDNESDAY:
      System.out.println("Wednesday");
      break;
   case THURSDAY:
      System.out.println("Thursday");
      break;
   case FRIDAY:
      System.out.println("Friday");
      break;
   case SATURDAY:
      System.out.println("Saturday");
      break;
   case SUNDAY:
      System.out.println("Sunday");
      break;
}

Cathetan: Yen sampeyan nggunakake statement enuming njero switch, sampeyan ora perlu nulis jeneng kelas ing ngarep saben nilai ing caselabel. Cukup mung nulis nilai.