Asosiy mazmunga o'tish

6-dars: while sikli

2-blokQarorlar va takrorlash5–8 darslar

Bu darsdan keyin siz

  • while bilan takrorlanadigan amalni yozasiz
  • siklning uch qismini (holat, shart, o’zgarish) ajratib ko’rsatasiz
  • cheksiz sikl sababini topasiz va tuzatasiz

Har ishlaydigan while siklida uchta narsa bo’ladi: sikl boshlanishidan oldingi boshlang’ich holat, har aylanishda tekshirilib turadigan shart va sikl ichidagi o’zgarish. O’zgarish shartga ta’sir qilmasa, sikl to’xtamaydi.

siklloop

Kodning bir bo’lagini shart bajarilib turgan vaqtda qayta-qayta bajarish. while — «shu shart rost ekan, davom et» degani.

yigindi.py
jami = 0        # 1. boshlang'ich holati = 1while i <= 5:   # 2. shart  jami = jami + i  i = i + 1   # 3. o'zgarishprint(jami)     # 15

i = i + 1 qatorini olib tashlasangiz, i doim 1 bo’lib qoladi, shart doim rost bo’ladi va programma to’xtamaydi. Terminalda Ctrl+C bosib to’xtatiladi.

Ba’zan chiqish sharti sikl o’rtasida ma’lum bo’ladi — o’shanda break ishlatiladi. U siklni darhol to’xtatadi va shartni ham tekshirmaydi.

parol.py
while True:  parol = input("Parol: ")  if parol == "steam":      print("Kirdingiz")      break  print("Xato, yana urinib ko'ring")

while True — ataylab cheksiz sikl, chiqish esa break orqali. Bu naqsh parol, menyu va o’yin siklida ko’p uchraydi.

Avval o'ylang: bu kod nima chiqaradi? Ishga tushirishdan oldin yozing.

Bashorat qiling
n = 3while n > 0:  print(n)  n = n - 1print("Boshladik!")
Javobni ko'rish
3
2
1
Boshladik!

Har aylanishda n chiqariladi va bittaga kamayadi. n = 0 bo'lganda shart yolg'on bo'ladi va sikldan chiqiladi — 0 chiqarilmaydi.

Avval o'ylang: bu kod nima chiqaradi? Ishga tushirishdan oldin yozing.

Bashorat qiling
i = 1jami = 0while i < 4:  jami = jami + i * i  i = i + 1print(jami)
Javobni ko'rish
14

Kvadratlar yig'indisi: 1 + 4 + 9 = 14. i = 4 bo'lganda shart yolg'on, shuning uchun 16 qo'shilmaydi.

Uch programma bor. Uchinchisida i = i + 1 qatori ataylab izohga olingan — cheksiz sikl qanday ko’rinishini xavfsiz kuzatishingiz mumkin.

Sikl qadamlovchi

Har qadamda o'zgaruvchilar jadvalini kuzating. Klaviatura: → bitta qadam.

Bu simulyator while siklini qadamlab bajaradi: har aylanishda o'zgaruvchilar qanday qiymat olayotgani jadvalda ko'rinadi. Uchinchi variantda i = i + 1qatori ataylab yo'q — sikl hech qachon tugamaydi.

JavaScript'siz sinash: daftarga jami va i ustunlarini chizing vawhile i <= 5 siklining har aylanishida ikkisining qiymatini yozib boring. Oxirida jami 15 bo'lishi kerak.

    O'zgaruvchilar

    Ekranga chiqdi

    Bu kod ataylab buzuq — xatoni toping

    Buzuq kod
    i = 1while i <= 3:  print(i)i = i + 1

    Python shunday javob beradi:

    1
    1
    1
    1
    ... (cheksiz davom etadi, Ctrl+C bilan to'xtatiladi)
    KeyboardInterrupt
    Sababi va tuzatish

    i = i + 1 qatorining otstupi yo'q — u sikl ichida emas, sikldan KEYIN turadi. Sikl esa unga hech qachon yetib bormaydi.

    Bu xatoning yomon tomoni: Python xato xabarini bermaydi, kod «shunchaki ishlamaydi». Shu sababli otstup — bezak emas, mantiq. To’g’risi: i = i + 1 ni 4 bo’shliq bilan surib, print(i) bilan bir qatorga tenglashtirish.

    1Siklning uch qismi qaysilar?

    Javobni ko'rish

    Boshlang’ich holat (sikldan oldin), shart (while yonida) va o’zgarish (sikl ichida). O’zgarish shartga ta’sir qilmasa, sikl cheksiz bo’ladi.

    2n = 3 bo'lsa, while n > 0 sikli nechta son chiqaradi va nechtasi?

    Javobni ko'rish

    Uchta: 3, 2, 1. n = 0 bo’lganda shart yolg’on bo’ladi, shuning uchun 0 chiqmaydi.

    3Cheksiz sikl paydo bo'lganda uni qanday to'xtatasiz va sababini qanday topasiz?

    Javobni ko'rish

    Terminalda Ctrl+C. Sababni topish uchun savol berish kerak: «shart qachon yolg’on bo’ladi?» — agar javob yo’q bo’lsa, o’zgarish yozilmagan yoki shartga ta’sir qilmayapti.

    4while True: qachon ishlatiladi va undan qanday chiqiladi?

    Javobni ko'rish

    Chiqish sharti sikl o’rtasida ma’lum bo’lganda (parol so’rash, menyu). Chiqish break orqali bo’ladi.

    5Sikl ichidagi qatorning otstupi bo'lmasa nima bo'ladi?

    Javobni ko'rish

    U qator sikldan tashqarida qoladi va sikl tugagandan keyin bajariladi. Agar bu qator o’zgarish bo’lsa — sikl cheksiz bo’ladi, lekin Python xato bermaydi.

    Topshiriq — darajangizni tanlang

    Asos · 5–7-sinf — Vizual va aniq ko'rsatmali

    1 dan 10 gacha sonlarni chiqaruvchi while sikli yozing. Keyin uni teskari qiling: 10 dan 1 gacha. Uchinchi variant: faqat juft sonlar (kalit: i = i + 2). Har uchi ishlaganini terminalda ko’rsatib, o’qituvchiga topshiring.

    Mustahkam · 8–9-sinf — Matnli masala, o'zingiz tuzasiz

    Parol so’raydigan programma yozing: to’g’ri parol steam, lekin uchta urinishdan keyin «Bloklandi» chiqib to’xtasin. Ya’ni ikki chiqish yo’li bo’ladi — to’g’ri parol va urinishlar tugashi. Urinishlar sonini o’zgaruvchida hisoblang.

    Chuqur · 10–11-sinf — Algoritmik, chegara holatlari bilan

    Sonni so’rab, uning raqamlari yig’indisini hisoblovchi programma yozing (masalan 4589 → 26). Faqat while, % va // ishlatiladi — satrga aylantirish taqiqlanadi. Chegara holatlarini sinang: 0, bitta raqamli son, manfiy son. Qo’shimcha savol: sikl necha marta aylanadi va bu sonning kattaligiga qanday bog’liq?

    Darsni belgilash uchun JavaScript kerak. Bu progressni saqlash uchun ishlatiladi — darslikning o'zi JavaScript'siz ham to'liq o'qiladi.