Asosiy qismga o‘tish

7. Sikllar: while, break, continue

Nazariya

while

for — «shuncha marta», while — «shart bajarilguncha»:

n = int(input())
yigindi = 0
while n > 0:
    yigindi += n % 10
    n //= 10
print(yigindi)

Sikl ichida shartga ta’sir qiladigan narsa albatta o‘zgarishi
kerak. Aks holda dastur cheksiz aylanadi va «Vaqt chegarasidan oshdi»
javobini oladi.

break va continue

break — sikldan butunlay chiqadi. continue — joriy qadamni tashlab,
keyingisiga o‘tadi.

for son in sonlar:
    if son < 0:
        continue          # manfiylarni o‘tkazib yuboramiz
    if son > 100:
        break             # 100 dan katta uchrasa to‘xtaymiz
    print(son)

Sikldagi else

Python‘ning kamdan-kam uchraydigan, lekin foydali imkoniyati: else
sikl break‘siz tugagandagina bajariladi.

for d in range(2, n):
    if n % d == 0:
        print("tub emas")
        break
else:
    print("tub")

Cheksiz sikl va chiqish

while True:
    qator = input()
    if not qator:
        break

Bu kirish qachon tugashi noma’lum bo‘lgan masalalarda ishlatiladi.

Misol

n = int(input())
d = 2
tub = n > 1
while d * d <= n:
    if n % d == 0:
        tub = False
        break
    d += 1
print('ha' if tub else 'yoq')

Mashq masalalari

Nazorat savollari

1 `while` sikli qachon to‘xtaydi? Bitta to‘g‘ri javob
2 `break` nima qiladi? Bitta to‘g‘ri javob
3 Nima chiqadi? Kod nima chiqaradi
for i in range(5):
    if i == 3:
        break
    print(i, end=' ')
4 Nima chiqadi? Kod nima chiqaradi
for i in range(5):
    if i % 2 == 0:
        continue
    print(i, end=' ')
5 Sikl ichida shartga ta’sir qiluvchi o‘zgaruvchi o‘zgarmasa, dastur cheksiz aylanadi. To‘g‘ri yoki noto‘g‘ri
6 Joriy qadamni tashlab, keyingisiga o‘tish uchun nima yoziladi? Bo‘sh joyni to‘ldirish
for x in a:
    if x < 0:
        ____
    print(x)
7 Sikldagi `else` bloki qachon bajariladi? Bitta to‘g‘ri javob
8 Nima chiqadi? Kod nima chiqaradi
n = 8
k = 0
while n > 1:
    n //= 2
    k += 1
print(k)
9 Qaysi holatlarda `while` `for` dan qulayroq? Bir nechta to‘g‘ri javob

Bir nechta javob to‘g‘ri bo‘lishi mumkin.

10 `while d * d <= n` sharti bilan tublikni tekshirishda eng ko‘p necha qadam bo‘ladi? (n orqali) Qisqa javob — yoziladi

Javoblar serverda tekshiriladi. Katta-kichik harf, apostrof shakli va ortiqcha bo‘shliq ahamiyatsiz.