Barcha kurslar Yo'nalishlar Reyting Kirish Ro'yxatdan o'tish

Bu bo'limda takrorlanuvchi jarayonlarning universal vositasi — while tsikli o'rganildi: ishlash tartibi, cheksiz tsikl xavfi, break/continue va ro'yxat-lug'atlar bilan birga ishlatish.

While qanday ishlaydi

while sharti True bo'lib turar ekan, tanasidagi kod qayta-qayta bajariladi. Har aylanish boshida shart qayta tekshiriladi:

son = 1
while son <= 5:
    print("Aylanish:", son)
    son += 1
print("Tsikl tugadi, son =", son)

Natija:

Aylanish: 1
Aylanish: 2
Aylanish: 3
Aylanish: 4
Aylanish: 5
Tsikl tugadi, son = 6

Oxirgi qatorga e'tibor bering: tsikl son 6 bo'lganda to'xtadi — shart (6 <= 5) yolg'on bo'ldi. Tsikl tugagach dastur keyingi qatordan odatdagidek davom etadi.

Ikkita klassik qolip:

Hisoblagich (counter) — yuqoridagi misol: o'zgaruvchi har aylanishda o'sadi, shart chegarani belgilaydi.

Yig'uvchi (accumulator) — natija tsikl davomida to'planib boradi:

jami = 0
son = 1
while son <= 100:
    jami += son
    son += 1
print("1 dan 100 gacha yig'indi:", jami)

Natija:

1 dan 100 gacha yig'indi: 5050

Cheksiz tsikl — bu yerdagi 1-xato

Agar shart hech qachon False bo'lmasa, tsikl to'xtamaydi va dastur "osilib qoladi" (Repl.it'da Stop, terminalda Ctrl+C bilan to'xtatiladi). Eng ko'p sabab — shartga ta'sir qiluvchi o'zgaruvchini yangilashni unutish:

son = 1
while son <= 5:
    print(son)      # son += 1 yo'q — 1 raqami cheksiz chiqaveradi

Qoida: while yozganingizda o'zingizdan so'rang — "bu shart qachon va nima hisobiga yolg'on bo'ladi?" Javob yo'q bo'lsa, tsikl cheksiz.

break va continue

Ikkala operator tsikl oqimini ichkaridan boshqaradi:

while True:
    buyruq = input("Buyruq kiriting (chiqish — q): ")
    if buyruq == "q":
        break            # tsikldan butunlay chiqish
    if buyruq == "":
        continue         # bu aylanishni tashlab, qaytadan so'rash
    print("Bajarildi:", buyruq)
print("Dastur tugadi")

Foydalanuvchi salom, (bo'sh), q kiritganda Natija:

Bajarildi: salom
Dastur tugadi
  • break — tsiklni shu zahoti butunlay to'xtatadi; boshqaruv tsikldan keyingi qatorga o'tadi.
  • continue — faqat shu aylanishning qolganini tashlaydi; tsikl keyingi aylanishdan davom etadi.

while True + break juftligi — foydalanuvchi bilan muloqot qiladigan dasturlarning standart shakli: shart "to'xtash signali kelguncha ishla" deb o'qiladi. Keyingi bo'limdagi ikkala o'yin aynan shu qolipda quriladi.

Tipik xato — breakni ifsiz yozish: shartsiz break tsiklni birinchi aylanishdayoq to'xtatadi va tsiklning ma'nosi qolmaydi.

While ro'yxatlar bilan

Bo'sh bo'lmagan ro'yxat shart o'rnida True deb baholanadi, bo'sh ro'yxat — False. Bundan "bo'shaguncha ishla" qolipi kelib chiqadi:

navbat = ["Ali", "Vali", "Olim"]
xizmat_qilindi = []

while navbat:                     # navbat bo'shaguncha
    mijoz = navbat.pop(0)         # boshidagi odamni olamiz
    xizmat_qilindi.append(mijoz)
    print(f"{mijoz} qabul qilindi. Navbatda: {len(navbat)} kishi")

print("Hammasi:", xizmat_qilindi)

Natija:

Ali qabul qilindi. Navbatda: 2 kishi
Vali qabul qilindi. Navbatda: 1 kishi
Olim qabul qilindi. Navbatda: 0 kishi
Hammasi: ['Ali', 'Vali', 'Olim']

Bir ro'yxatdan ikkinchisiga ko'chirish qolipi ma'lumotni bosqichma-bosqich qayta ishlashda tez-tez ishlatiladi: "kutilayotganlar" → "bajarilganlar".

While lug'atlar bilan

Foydalanuvchi kiritishini lug'atga yig'ish — so'rovnoma qolipi:

sorovnoma = {}

while True:
    ism = input("Ism (tugatish — bo'sh qoldiring): ")
    if ism == "":
        break
    javob = input(f"{ism}, sevimli tilingiz: ")
    sorovnoma[ism] = javob

print(sorovnoma)

Ali/Python, Vali/Go, so'ng bo'sh kiritilganda Natija:

{'Ali': 'Python', 'Vali': 'Go'}

Eslab qoling

  • while sharti har aylanish boshida tekshiriladi; False — tsikl tugadi.
  • Tanada shartga ta'sir qiluvchi narsa bo'lishi shart — aks holda tsikl cheksiz.
  • break — butunlay chiqish; continue — shu aylanishni tashlash.
  • while True + break — muloqot dasturlarining standart qolipi.
  • Bo'sh ro'yxat Falsewhile royxat: "bo'shaguncha ishla" degani; pop(0) boshidan oladi.

Amaliyot

  1. 10 dan 1 gacha teskari sanab, oxirida "Start!" deydigan dastur yozing.
  2. 1 dan 50 gacha faqat 7 ga bo'linadigan sonlarni chiqaring va nechta ekanini sanang.
  3. Foydalanuvchidan while True bilan so'zlar qabul qiling; "stop" deyilganda nechta so'z kiritilganini aytib to'xtang; bo'sh kiritish continue bilan o'tkazib yuborilsin.
  4. vazifalar = ["dars", "mashq", "test", "loyiha"] ro'yxatini "bo'shaguncha" qolipida bajarilganga ko'chiring; har qadamda qancha qolganini chiqaring.
  5. So'rovnoma qolipini o'zingizga moslang: ism va yosh so'rab lug'atga yig'ing; oxirida eng katta yoshni toping.
  6. Ataylab cheksiz tsikl yozing, to'xtating, so'ng "bu shart qachon yolg'on bo'ladi?" savoliga javob beradigan qilib tuzating.

Bo'lim testida shu qoliplar so'raladi.

While — konspekt

While Maqola

While tsikli, break va continue operatorlari — bir sahifada.

Eslatma yozish uchun saytga kiring.

Resurslar hozircha qo'shilmagan

O'qituvchi dars uchun qo'shimcha materiallarni qo'shganida shu yerda paydo bo'ladi.

Savol berish uchun saytga kiring.

Hozircha savollar yo'q

Bu dars yuzasidan birinchi savolni siz bering.