Published on

Swiftda continue operatori

Authors

continue operatori loopning joriy iteratsiyasini o'tkazib yuboradi va darhol navbatdagi iteratsiyaga o'tadi.

Sintaksis:

continue

Continue operatori:

  • joriy iteratsiyani to'xtatadi
  • loopni tugatmaydi
  • keyingi iteratsiyani davom ettiradi

continue qanday ishlaydi?

continue
iteration β†’ continue uchradi β†’ joriy iteration tugadi β†’ navbatdagi iteration boshlanadi

1. continue operatori for loop bilan

Misol:

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

Tushuntirish:

i == 3 bo'lganda continue ishlaydi β†’ 3 chop qilinmaydi.

Shuning uchun faqat:

1, 2, 4, 5 chop etiladi.

2. continue operatori while loop bilan

Misol:

Swift
continue - while loop
var num = 0 while num <= 10 { num += 1 if (num % 2) == 0 { continue } print(num) }

Tushuntirish:

num juft bo'lsa β†’ continue ishlaydi β†’ o'tkazib yuboriladi.

Shuning uchun faqat toq sonlar chiqariladi.

3. continue operatori nested (ichma-ich) looplarda

Misol:

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

Tushuntirish:

j == 2 bo'lsa, ichki loop joriy iterationni o'tkazib yuboradi.

Shuning uchun j = 2 hech qachon chop qilinmaydi.

4. Labeled continue (belgilangan continue)

Bu continue operatorining kengaytirilgan ko'rinishi bo'lib, ular tashqi loopning joriy iteratsiyasini ham o'tkazib yuborishi mumkin.

break

Looplar nomlanadi:

outerloop: for i in 1...3 { ... }
innerloop: for j in 1...3 { ... }

Keyin continue shunday yoziladi:

continue outerloop

Bu shuni anglatadiki:

Tashqi loopning ayni iteratsiyasini tugat va keyingi iteratsiyaga o't.

Misol:

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

Tushuntirish:

j == 3 bo'lganda:

  • oddiy continue emas
  • outerloopning ayni iteratsiyasi tugaydi
  • tashqi loop navbatdagi iteratsiyadan davom etadi

Shuning uchun hech qachon:

i = x, j = 3

chiqmaydi.

Eslatma

  • labeled continue juda kam ishlatiladi
  • Katta kodlarda chalkashlik keltirib chiqarishi mumkin
  • Odatda aniq struktura va shartlar bilan kod yozish afzal

πŸ“š Masalalarni qanday yechish kerak?

βœ… Namuna: 1-masala yechimi

Masala: 1 dan n gacha bo'lgan toq sonlar yig'indisini qaytaring.

Bosqichma-bosqich yechim:

1-qadam: Masalani tushunish

  • n = 10 β†’ toq sonlar: 1, 3, 5, 7, 9 β†’ yig'indi: 25
  • n = 7 β†’ toq sonlar: 1, 3, 5, 7 β†’ yig'indi: 16

2-qadam: continue bilan yechish

Juft sonlarni o'tkazib yuboramiz:

var sum = 0
for i in 1...n {
    if i % 2 == 0 {
        continue  // juft sonni o'tkazib yuborish
    }
    sum += i
}

3-qadam: To'liq yechim

Swift
1-masala yechimi
func solve(_ n: Int) -> Int { var sum = 0 for i in 1...n { if i % 2 == 0 { continue } sum += i } return sum } // Tekshirish print(solve(10)) // 25 (1+3+5+7+9) print(solve(7)) // 16 (1+3+5+7) print(solve(1)) // 1 print(solve(20)) // 100

Natija: Barcha testlar o'tadi βœ…

Izoh:

  • if i % 2 == 0 β€” juft sonni aniqlaydi
  • continue β€” juft bo'lsa, yig'indiga qo'shmasdan keyingi iteratsiyaga o'tadi
  • Faqat toq sonlar sum += i qatoriga yetib keladi
  • Loop tugagach sum qaytariladi

Alternativ: for i in stride(from: 1, through: n, by: 2) β€” faqat toq sonlarni aylanish


Xulosa

  • continue β€” joriy iteratsiyani o'tkazadi
  • break dan farqi: loop to'xtamaydi
  • Nested loop da faqat ichki loopning iteratsiyasini o'tkazadi
  • Labeled continue β€” tashqi loop iteratsiyasini o'tkazish uchun
Buy mea coffee