1. Ang multiple-choice na operator:switch
Ang Java ay may isa pang kawili-wiling operator na minana nito mula sa kanyang grandpappy (C++). Pinag-uusapan natin ang switch
pahayag. Matatawag din natin itong multiple-choice operator. Mukhang medyo mahirap:
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
Ang isang expression o variable ay ipinahiwatig sa loob ng mga panaklong. Kung ang halaga ng expression ay value1
, ang Java machine ay magsisimulang magsagawa code1
. Kung ang expression ay katumbas ng value2
, execution jumps to code2
. Kung ang expression ay katumbas ng value3
, pagkatapos code3
ay ipapatupad.
Halimbawa:
Code | Output ng console |
---|---|
|
|
2. break
pahayag saswitch
Ang isang mahalagang tampok ng isang switch
pahayag ay ang programa ay tumalon lamang sa kinakailangang linya (sa kinakailangang bloke ng code) at pagkatapos ay ipapatupad ang lahat ng mga bloke ng code hanggang sa katapusan ng switch
. Hindi lamang ang bloke ng code na tumutugma sa halaga sa switch
, ngunit ang lahat ng mga bloke ng code hanggang sa katapusan ng switch
.
Halimbawa:
Code | Output ng console |
---|---|
|
|
Dahil sa temperatura na 36, papasok ang programa sa switch
pahayag, tumalon sa at isagawa ang unang bloke ng code (ang unang kaso), at pagkatapos ay masayang isagawa ang natitirang mga bloke ng code.
Kung gusto mong magsagawa lamang ng isang bloke ng code — ang bloke ng code na nauugnay sa katugmang case — pagkatapos ay kailangan mong tapusin ang bloke gamit ang isang break
pahayag;
Halimbawa:
Code | Output ng console |
---|---|
|
|
Maaari mong alisin ang break
sa huling kaso ng switch
statement, dahil ang block na iyon ay ang huling may break statement o walang.
3. Default na pagkilos:default
Isa pang mahalagang punto. Ano ang mangyayari kung wala sa mga kasong nakalista sa switch
tugma ang expression sa mga panaklong?
Kung ang isang katugmang case ay hindi makita, pagkatapos ay ang natitirang bahagi ng switch
pahayag ay nilaktawan, at ang programa ay magpapatuloy sa pagpapatupad pagkatapos ng curly brace na nagtatapos sa switch
pahayag.
Iyon ay sinabi, maaari ka ring gumawa ng isang switch
pahayag na kumikilos tulad ng ibang sangay sa isang if-else
pahayag. Upang gawin ito, gamitin ang default
keyword.
Kung wala sa mga case
s sa switch
block ang tumutugma sa halaga ng expression at ang switch
may default
block, ang default na block ay isasagawa. Halimbawa:
Code | Output ng console |
---|---|
|
|
4. Paghahambing switch
atif-else
Ang switch
pahayag ay medyo katulad ng isang if-else
pahayag, mas kumplikado lamang.
Maaari mong muling isulat ang code ng isang switch
pahayag bilang maramihang if
mga pahayag anumang oras. Halimbawa:
Code na may switch | Code na may if-else |
---|---|
|
|
Ang code sa kaliwa ay gagana nang eksaktong kapareho ng code sa kanan.
Mas mainam ang isang hanay ng maraming if-else
pahayag kapag ang isang if
pahayag ay naglalaman ng iba't ibang kumplikadong expression sa bawat hiwalay na kaso.
5. Anong mga ekspresyon ang maaaring gamitin sa isang switch
pahayag?
Hindi lahat ng uri ay maaaring gamitin bilang case
mga label sa isang switch
pahayag. Maaari kang gumamit ng mga literal ng mga sumusunod na uri:
- mga uri ng integer:
byte
,short
,int
,long
char
String
- anumang
enum
uri
Hindi ka maaaring gumamit ng anumang iba pang uri bilang mga label ng case.
Halimbawa ng paggamit ng enum
loob ng isang switch
pahayag:
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;
}
Tandaan: Kung gagamit ka ng enum
inside a switch
statement, hindi mo kailangang isulat ang pangalan ng klase sa harap ng bawat value sa mga case
label. Ito ay sapat na upang isulat lamang ang halaga.
GO TO FULL VERSION