32 / 103

Switch evaluation order

Switch'da hisoblash tartibi

Switch caselarni yuqoridan pastga qarab hisoblaydi va biri muvaffaqiyatli bo'lganda to'xtaydi.

(Masalan,

example.go
switch i {
case 0:
case f():
}

i==0 bo'lsa f ni chaqirmaydi.)

Eslatma: Go playground'da vaqt har doim 2009-yil 10-noyabr 23:00:00 UTC dan boshlanadi. Bu qiymatning ahamiyati o'quvchiga mashq sifatida qoldirilgan.

Topshiriqlar

Yechimni kodning pastki qismidagi Topshiriqlar bo'limiga yozing, so'ng Submit tugmasini bosing. Mavzu mustahkam o'zlashishi uchun ikkala topshiriqni ham bajaring.

1-topshiriq

tekshir(i int) int funksiyasini yozing: switch i { case 0: ... case f(): ... } tuzilmasi bilan i == 0 bo'lsa 0, i == f() bo'lsa 1, aks holda 2 qaytarsin. Muhim: i == 0 bo'lganda f umuman chaqirilmasligi kerak (yuqoridagi kodda f va chaqirildi hisoblagichi tayyor).

2-topshiriq

qachon(bugun, nishon time.Weekday) string funksiyasini yozing: switch nishon { case bugun: ... case bugun + 1: ... case bugun + 2: ... } bilan "Bugun.", "Ertaga.", "Ikki kundan keyin.", aks holda "Hali ancha uzoq." qaytarsin. Masalan, qachon(time.Monday, time.Tuesday) — "Ertaga.".