while давталт
for давталт нь тодорхой дарааллыг элемент бүрт давтдаг бол while давталт нь нөхцөл үнэн байх хүртэл үргэлжилдэг. Хэдэн удаа давтахыг урьдчилан мэдэхгүй үед — хэрэглэгч зөв оролт өгтөл хүлээх, файл уншиж дуустал давтах — while хамгийн тохиромжтой.
Үндсэн бүтэц
тоо = 1
while тоо <= 5:
print(тоо)
тоо += 1
# 1
# 2
# 3
# 4
# 5
Бүтэц:
while— түлхүүр үгтоо <= 5— давтах нөхцөл;Trueбайвал үргэлжилнэ:— блок эхлэх тэмдэг- Биелүүлэх код 4 зайгаар догол оруулагдана
- ⚠️ Нөхцөл өөрчлөгдөхгүй бол төгсгөлгүй давталт үүснэ — болгоомжлоорой
for ба while хэзээ сонгох вэ?
| Нөхцөл | Сонгох давталт |
| ------------------------------------ | -------------- |
| Жагсаалт, string дээр давтах | for |
| Тодорхой тооны удаа давтах | for + range |
| Нөхцөл хангагдтал давтах | while |
| Хэрэглэгчийн оролтыг хүлээх | while |
| Файл, өгөгдөл дууссан эсэх шалгах | while |
break — while-аас гарах
оролдлого = 0
зөв_нууц_үг = "python123"
while True: # төгсгөлгүй давталт
оролдлого += 1
нууц_үг = input(f"{оролдлого}-р оролдлого: ")
if нууц_үг == зөв_нууц_үг:
print("Нэвтэрлээ ✓")
break
elif оролдлого >= 3:
print("Оролдлого хэтэрлээ. Хаагдлаа.")
break
else:
print("Нууц үг буруу, дахин оролдно уу.")
while True: хэлбэр нь "хэзээ ч зогсохгүй давт" гэсэн утгатай — break-р л гарна.
continue — давталтын нэг алхмыг алгасах
тоо = 0
while тоо < 10:
тоо += 1
if тоо % 3 == 0: # 3-т хуваагдах тоог алгасах
continue
print(тоо)
# 1, 2, 4, 5, 7, 8, 10
else блок
while давталтад else нэмж болно — давталт нөхцөлөөрөө дуусвал (break-гүйгээр) ажиллана:
оролдлого = 0
зөв_хариулт = 42
while оролдлого < 3:
хариулт = int(input("Тоо таа: "))
оролдлого += 1
if хариулт == зөв_хариулт:
print("Зөв!")
break
else:
print(f"Зөв хариулт нь {зөв_хариулт} байлаа.")
Тоолуур ба хуримтлагч
while давталт тоолуур ба нийлбэр гаргахад хэрэглэгддэг:
# 1-ээс 100 хүртэл бүхэл тоонуудын нийлбэр
тоо = 1
нийлбэр = 0
while тоо <= 100:
нийлбэр += тоо
тоо += 1
print(f"1-ээс 100-ийн нийлбэр: {нийлбэр}") # 5050
Бодит жишээ — тоо таалтын тоглоом
import random
нууц_тоо = random.randint(1, 100)
оролдлого = 0
дээд_оролдлого = 7
print("1-ээс 100 хүртэлх тоог таа!")
print(f"Танд {дээд_оролдлого} оролдлого байна.\n")
while оролдлого < дээд_оролдлого:
оролдлого += 1
үлдсэн = дээд_оролдлого - оролдлого
тааварлалт = int(input(f"{оролдлого}-р оролдлого: "))
if тааварлалт == нууц_тоо:
print(f"\n🎉 Зөв! {оролдлого} оролдлогоор таалаа!")
break
elif тааварлалт < нууц_тоо:
print(f"↑ Их тоо оруулна уу. Үлдсэн оролдлого: {үлдсэн}")
else:
print(f"↓ Бага тоо оруулна уу. Үлдсэн оролдлого: {үлдсэн}")
else:
print(f"\n😔 Оролдлого дууслаа. Нууц тоо {нууц_тоо} байлаа.")
Аюултай — төгсгөлгүй давталт
while-д хамгийн нийтлэг алдаа бол нөхцөл хэзээ ч False болохгүй байх явдал:
# ❌ Төгсгөлгүй давталт — хэзээ ч зогсохгүй!
тоо = 1
while тоо > 0:
print(тоо)
тоо += 1 # тоо буурдаггүй тул нөхцөл үргэлж True
# ✅ Зөв — тоо буурна
тоо = 10
while тоо > 0:
print(тоо)
тоо -= 1 # нөхцөл аажмаар False болно
Хэрэв терминалд давталт зогсохгүй бол Ctrl+C дарж зогсооно.
Дараагийн хичээлд:
while давталтыг эзэмшлээ! Дараа нь функц (function) гэж юу болох, хэрхэн зарлаж дуудах, параметр ба return утга хэрхэн ажилладгийг сурна — кодыг дахин ашиглах чадварын гол хэрэгсэл.