1. Operator aneka pilihan:switch
Java mempunyai satu lagi pengendali menarik yang diwarisi daripada datuknya (C++). Kita bercakap tentang switch
kenyataan itu. Kami juga boleh memanggilnya pengendali aneka pilihan. Ia kelihatan sedikit menyusahkan:
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
Ungkapan atau pembolehubah ditunjukkan dalam kurungan. Jika nilai ungkapan ialah value1
, mesin Java mula melaksanakan code1
. Jika ungkapan itu sama dengan value2
, pelaksanaan melompat ke code2
. Jika ungkapan itu sama dengan value3
, maka code3
dilaksanakan.
Contoh:
Kod | Output konsol |
---|---|
|
|
2. break
pernyataan dalamswitch
Ciri penting pernyataan switch
ialah program hanya melompat ke baris yang diperlukan (ke blok kod yang diperlukan) dan kemudian melaksanakan semua blok kod sehingga penghujung switch
. Bukan sahaja blok kod yang sepadan dengan nilai dalam switch
, tetapi semua blok kod sehingga akhir switch
.
Contoh:
Kod | Output konsol |
---|---|
|
|
Memandangkan suhu 36, atur cara akan memasukkan switch
penyata, melompat ke dan melaksanakan blok pertama kod (kes pertama), dan kemudian dengan riang melaksanakan blok kod yang lain.
Jika anda ingin melaksanakan hanya satu blok kod — blok kod yang dikaitkan dengan kes yang dipadankan — maka anda perlu menamatkan blok dengan pernyataan break
;
Contoh:
Kod | Output konsol |
---|---|
|
|
Anda boleh meninggalkan break
dalam kes terakhir pernyataan switch
, kerana blok itu adalah yang terakhir dengan atau tanpa penyataan putus.
3. Tindakan lalai:default
Satu lagi perkara penting. Apakah yang berlaku jika tiada kes yang disenaraikan dalam switch
sepadan dengan ungkapan dalam kurungan?
Jika kes yang sepadan tidak ditemui, maka pernyataan yang lain switch
dilangkau dan program akan meneruskan pelaksanaan selepas pendakap kerinting menamatkan pernyataan switch
.
Walau bagaimanapun, anda juga boleh membuat switch
pernyataan berkelakuan seperti cawangan lain dalam if-else
pernyataan. Untuk melakukan ini, gunakan default
kata kunci.
Jika tiada case
s dalam switch
blok sepadan dengan nilai ungkapan dan switch
mempunyai default
blok, blok lalai akan dilaksanakan. Contoh:
Kod | Output konsol |
---|---|
|
|
4. Membanding switch
danif-else
Kenyataan itu switch
agak serupa dengan if-else
pernyataan, cuma lebih rumit.
Anda sentiasa boleh menulis semula kod pernyataan switch
sebagai berbilang if
kenyataan. Contoh:
Kod dengan suis | Kod dengan if-else |
---|---|
|
|
Kod di sebelah kiri akan berfungsi sama seperti kod di sebelah kanan.
Rangkaian berbilang if-else
pernyataan adalah lebih baik apabila if
pernyataan mengandungi pelbagai ungkapan kompleks dalam setiap kes berasingan.
5. Apakah ungkapan yang boleh digunakan dalam switch
pernyataan?
Tidak semua jenis boleh digunakan sebagai case
label dalam switch
pernyataan. Anda boleh menggunakan literal jenis berikut:
- jenis integer:
byte
,short
,int
,long
char
String
- apa-apa
enum
jenis
Anda tidak boleh menggunakan mana-mana jenis lain sebagai label kes.
Contoh penggunaan enum
dalam switch
pernyataan:
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;
}
Nota: Jika anda menggunakan pernyataan enum
dalam switch
, anda tidak perlu menulis nama kelas di hadapan setiap nilai dalam case
label. Cukup sekadar menulis nilai.
GO TO FULL VERSION