Darsliklar Dart Switch Tanlash operatori

Dart Dart Switch Tanlash operatori

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.

switchbir ifodaning qiymatini bir necha case yorlig’i bilan solishtirib, mos kelganini bajaradigan tanlash operatori. Har bir case odatda break bilan 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.