1. Operator aneka pilihan:switch

Java mempunyai satu lagi pengendali menarik yang diwarisi daripada datuknya (C++). Kita bercakap tentang switchkenyataan 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 code3dilaksanakan.
Contoh:
| Kod | Output konsol |
|---|---|
|
|
2. breakpernyataan dalamswitch
Ciri penting pernyataan switchialah 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 switchpenyata, 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 breakdalam 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 switchsepadan dengan ungkapan dalam kurungan?
Jika kes yang sepadan tidak ditemui, maka pernyataan yang lain switchdilangkau dan program akan meneruskan pelaksanaan selepas pendakap kerinting menamatkan pernyataan switch.
Walau bagaimanapun, anda juga boleh membuat switchpernyataan berkelakuan seperti cawangan lain dalam if-elsepernyataan. Untuk melakukan ini, gunakan defaultkata kunci.
Jika tiada cases dalam switchblok sepadan dengan nilai ungkapan dan switchmempunyai defaultblok, blok lalai akan dilaksanakan. Contoh:
| Kod | Output konsol |
|---|---|
|
|
4. Membanding switchdanif-else
Kenyataan itu switchagak serupa dengan if-elsepernyataan, cuma lebih rumit.
Anda sentiasa boleh menulis semula kod pernyataan switchsebagai berbilang ifkenyataan. Contoh:
| Kod dengan suis | Kod dengan if-else |
|---|---|
|
|
Kod di sebelah kiri akan berfungsi sama seperti kod di sebelah kanan.
Rangkaian berbilang if-elsepernyataan adalah lebih baik apabila ifpernyataan mengandungi pelbagai ungkapan kompleks dalam setiap kes berasingan.
5. Apakah ungkapan yang boleh digunakan dalam switchpernyataan?
Tidak semua jenis boleh digunakan sebagai caselabel dalam switchpernyataan. Anda boleh menggunakan literal jenis berikut:
- jenis integer:
byte,short,int,long charString- apa-apa
enumjenis
Anda tidak boleh menggunakan mana-mana jenis lain sebagai label kes.
Contoh penggunaan enumdalam switchpernyataan:
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 enumdalam switch, anda tidak perlu menulis nama kelas di hadapan setiap nilai dalam caselabel. Cukup sekadar menulis nilai.
GO TO FULL VERSION