switch (tanlash operatori) — bitta qiymatni ko’plab variantlar bilan solishtirishning tozaroq usuli. Uzun if-else if zanjiri o’qishni qiyinlashtirganda, switch kodni ancha tartibli qiladi. U ayniqsa aniq, sanab o’tiladigan variantlar bilan ishlashda qulay.
switch — bir ifodaning qiymatini bir necha
caseyorlig’i bilan solishtirib, mos kelganini bajaradigan tanlash operatori. Har bircaseodatdabreakbilan tugaydi.
Oddiy switch
switch berilgan qiymatni har bir case bilan solishtiradi:
void main() {
int kun = 3;
switch (kun) {
case 1:
print("Dushanba");
break;
case 2:
print("Seshanba");
break;
case 3:
print("Chorshanba");
break;
default:
print("Noma'lum kun");
}
}
Chorshanba
kun qiymati 3 bo’lgani uchun case 3 bajarildi. default esa hech qaysi case mos kelmaganda ishlaydi.
switch matn bilan
Dart’da switch matn (String) bilan ham ishlaydi:
void main() {
String tanlov = "kirish";
switch (tanlov) {
case "royxat":
print("Ro'yxatdan o'tish");
break;
case "kirish":
print("Tizimga kirish");
break;
default:
print("Noto'g'ri tanlov");
}
}
Tizimga kirish
break va Dart xususiyati
Dart’da har bir case break (yoki return, continue) bilan tugashi kerak. C’dan farqli o’laroq, Dart bo’sh bo’lmagan case da break ni unutsangiz, xato beradi — bu tasodifiy “sirg’alib o’tish” (fall-through) ni oldini oladi:
void main() {
int son = 2;
switch (son) {
case 1:
print("Bir");
break;
case 2:
print("Ikki");
break;
}
}
Ikki
Bu qat’iylik Dart’ni C va JavaScript’dan xavfsizroq qiladi — fall-through xatosi bo’lishi mumkin emas.
switch va if farqi
Ikkovining farqini jadvalda ko’ramiz:
| Xususiyat | switch |
if-else |
|---|---|---|
| Solishtirish | aniq tenglik | har qanday shart |
Oraliq (x > 5) |
qo’llab-quvvatlamaydi | qo’llab-quvvatlaydi |
| O’qilishi | ko’p variantda toza | murakkab shartda moslashuvchan |
Xulosa
Bu bo’limda switch operatori, case/default, break ning Dart’dagi majburiyligi va uning if dan farqini ko’rib chiqdik. Dart’da fall-through xatosi bo’lmaydi. Keyingi darsda takrorlash operatorlari — while va do-while ga o’tamiz.