1. Ko'p tanlovli operator — switch

Java-da yana bir qiziqarli operator bor, bu C++ dan meros qolgan. Bu switch operatori. Uni ko'p tanlovli operator deb ham atashadi. Shu tarzda ko'rinadi:
switch(ifoda)
{
case qiymat1: kod1;
case qiymat2: kod2;
case qiymat3: kod3;
}
Ichidagi qavslar ichida biror ifoda yoki o'zgaruvchi ko'rsatiladi. Agar ifodaning qiymati qiymat1 ga teng bo'lsa, kod1 bajariladi, agar qiymat2 ga teng bo'lsa, kod2 bajariladi, agar qiymat3 ga teng bo'lsa, kod3 bajariladi.
Misol:
| Kod | Ekranga chiqish |
|---|---|
|
|
2. break operatori switch ichida
switch ning muhim jihatlaridan biri shundaki, dastur kerakli qator (kerakli blok kod) ga sakraydi va keyin switch oxirigacha barcha kod bloklarini bajaradi. Faqat switch ichidagi qiymatga mos keladigan kod bloki emas, balki switch oxirigacha barcha kod bloklari bajariladi.
Misol:
| Kod | Ekranga chiqish |
|---|---|
|
|
Harorat 36 bo'lganda, dastur switch ichida birinchi kod blokiga o'tadi — birinchi qatorga, va uni bajarishini tugatib, boshqa kod bloklarini bajaradi.
Agar har bir misolda faqat bitta kod bloki bajarilishini istasangiz, unga sakralgan dasturning bajara olishini istasangiz, siz kod blokidan keyin break operatorini yozishingiz kerak.
Misol:
| Kod | Ekranga chiqish |
|---|---|
|
|
switch ichidagi oxirgi misolda break yozmasa ham bo'ladi, chunki kod bloki oxirgi.
3. Default amallar: default
Yana muhim jihat. Agar switch ichidagi hech bir qiymat ifoda ichidagi qiymatga teng bo'lmasa, nima yuz beradi?
Agar mos keladigan variant topilmasa, switch operatori ishlashni to'xtatadi va dastur switch operatori qavslaridan keyin yozilgan kodni bajara boshlaydi.
Lekin switch ichida if-else ning else blokiga o'xshash holatni amalga oshirishingiz mumkin. Buning uchun default kalit so'zidan foydalanish kerak.
Agar hech bir case ichidagi variant switch ifodasi qiymati bilan mos kelmasa va switch ichida default e'lon qilingan bo'lsa, uning kodi bajariladi. Misol:
| Kod | Ekranga chiqish |
|---|---|
|
|
4. Taqqoslash: switch vs if-else
switch operatori qandaydir if-else operatoriga o'xshaydi, lekin u yanada murakkab varianti.
Siz har doim switch kodini bir necha if ga yozishingiz mumkin. Misol:
| Kod switch bilan | Kod if-else bilan |
|---|---|
|
|
Chapdagi kod o'ngdagi kod kabi ishlaydi.
Bir necha if-else ko'rinishidagi kodni ishlatish yaxshiroq, agar har bir if ichida turli xil murakkab ifodalar mavjud bo'lsa.
5. switch da parametri sifatida nima ishlatilishi mumkin?
Barcha turlarni switch operatori ichidagi case qiymatlari sifatida ishlatish mumkin emas. Hozirda quyidagi turdagi adabiyotlar ishlatilishi mumkin:
- butun turlar:
byte,short,int - tur
char - tur
String - har qanday
enumturidagi qiymatlar
Hech qanday boshqa turlar case ichida qiymatlar sifatida yozish mumkin emas.
enum ning switch ichida ishlatilishi misoli:
Day day = Day.MONDAY;
switch (day)
{
case MONDAY:
System.out.println("Dushanba");
break;
case TUESDAY:
System.out.println("Seshanba");
break;
case WEDNESDAY:
System.out.println("Chorshanba");
break;
case THURSDAY:
System.out.println("Payshanba");
break;
case FRIDAY:
System.out.println("Juma");
break;
case SATURDAY:
System.out.println("Shanba");
break;
case SUNDAY:
System.out.println("Yakshanba");
break;
}
Eslatma. Agar siz switch ichida enum ni ishlatsangiz, har bir qiymat oldida sinf nomini yozmaslik mumkin. Faqat qiymatni yozish kifoya.
GO TO FULL VERSION