Published on

Swiftda break operatori

Authors

break operatori loopni darhol to'xtatish uchun ishlatiladi. U qaysi loop ichida tursa, o'sha loopni to'xtatadi.

Sintaksis:

break

break asosan quyidagi bilan ishlatiladi:

  • for loop
  • while loop
  • if…else (qaror qabul qilish sharti bilan birga)
  • nested loops

break qanday ishlaydi?

break

Loop ichida break uchragan zahoti:

  • loop darhol tugaydi
  • boshqaruv (control) loopdan keyingi kodga o'tadi
loop β†’ break uchradi β†’ loop tugadi β†’ tashqaridagi kod ishlaydi

1. break operatori for loop bilan

Misol:

Swift
break - for loop
for i in 1...5 { if i == 3 { break } print(i) }

Tushuntirish:

i == 3 bo'lganda break ishga tushadi va loop to'xtaydi.

Shuning uchun:

  • 1 β†’ chiqadi
  • 2 β†’ chiqadi
  • 3 ga yetganda β†’ break β†’ loop tugaydi

2. break operatori while loop bilan

Misol:

Swift
break - while loop
var i = 1 while (i <= 10) { print("6 * \(i) =", 6 * i) if i >= 5 { break } i = i + 1 }

Tushuntirish:

i >= 5 bo'lganda break ishlaydi.

Demak, 1 dan 5 gacha bo'lgan qiymatlar chiqariladi.

3. break operatori nested loops (ichma-ich loop)da

Agar break ichki loopda bo'lsa:

  • faqat ichki loop to'xtaydi
  • tashqi loop davom etadi

Misol:

Swift
break - nested loop
for i in 1...3 { for j in 1...3 { if i == 2 { break } print("i = \(i), j = \(j)") } }

Nima bo'ldi?

  • i == 2 bo'lganda ichki loop to'xtadi
  • shu bois i = 2 uchun hech narsa chop qilinmadi
  • tashqi loop esa davom etdi (i = 3)

4. Labeled break (belgilangan break)

Bu ko'p ishlatilmasa ham, nested loopsda juda qulay.

Oddiy break faqat ichki loopni to'xtatadi.

Ammo "labeled break" yordamida tashqi loopni ham to'xtatish mumkin.

Qanday ishlaydi?

Looplarga nom beriladi:

outerloop: for ...
innerloop: for ...

Keyin break shunday yoziladi:

break outerloop

Bu shuni anglatadiki:

tashqi loopni to'xtat

Misol:

Swift
Labeled break
outerloop: for i in 1...3 { innerloop: for j in 1...3 { if j == 3 { break outerloop } print("i = \(i), j = \(j)") } }

Tushuntirish:

  • j == 3 bo'lganda break outerloop ishlaydi
  • ichki loop emas, butun tashqi loop to'xtaydi
  • shuning uchun faqat i = 1 davri chop qilindi

πŸ“š Masalalarni qanday yechish kerak?

βœ… Namuna: 1-masala yechimi

Masala: n ning 1 dan katta eng kichik bo'luvchisini toping. Agar bunday bo'luvchi yo'q bo'lsa (tub son), n ni qaytaring.

Bosqichma-bosqich yechim:

1-qadam: Masalani tushunish

  • n = 15 β†’ bo'luvchilar: 1, 3, 5, 15 β†’ 1 dan katta eng kichik: 3
  • n = 7 β†’ bo'luvchilar: 1, 7 β†’ 1 dan katta bo'luvchi yo'q (tub), 7 qaytaring

2-qadam: Algoritm

2 dan n gacha loop ishlatamiz. Birinchi bo'luvchini topib, break bilan chiqamiz:

for i in 2..<n {
    if n % i == 0 {
        return i  // birinchi bo'luvchi topildi
    }
}
return n  // bo'luvchi topilmadi, tub son

3-qadam: To'liq yechim

Swift
1-masala yechimi
func solve(_ n: Int) -> Int { for i in 2..<n { if n % i == 0 { return i } } return n } // Tekshirish print(solve(15)) // 3 print(solve(7)) // 7 (tub son) print(solve(100)) // 2 print(solve(49)) // 7

Natija: Barcha testlar o'tadi βœ…

Izoh:

  • for i in 2..<n β€” 2 dan n-1 gacha tekshiramiz
  • n % i == 0 β€” i bo'luvchi bo'lsa
  • return i β€” birinchi bo'luvchini qaytarib, funksiyadan chiqamiz (break o'rniga)
  • Loop tugasa va bo'luvchi topilmasa, n tub son β€” n qaytariladi

Xulosa

  • break β€” loopni darhol to'xtatadi
  • for, while, switch da ishlaydi
  • Nested loop da faqat ichki loopni to'xtatadi
  • Labeled break β€” tashqi loopni to'xtatish uchun
Buy mea coffee