Лекция · 4.5

Break циклін басқару

Ойыншы сандар тізбегінен нөлді іздейді делік: 4, 8, 0, 7, 4. Үшінші санда нөл тапты! Енді төртінші, бесінші санды тексеруге не қажет? Мақсатқа жеттің қой — ТОҚТА! Дәл осы — break операторының логикасы: керекті нәтижеге жеткен сәтте циклді ТОЛЫҚ ТОҚТАТУ. Бұл — өткен сабақтағы continue-мен ШАТАСТЫРЫЛАТЫН, бірақ мүлдем басқа қызмет атқаратын оператор.

Break деген не

Өткен сабақта continue-ды «кезектегі бір адамды өткізіп жіберу» дедік — кезек ЖАЛҒАСАДЫ. Ал break — «керегімді таптым, кезектен МҮЛДЕМ ШЫҒАМЫН» дегенмен бірдей.

Анықтама
Break (үзілу) — белгілі бір шарт орындалғанда ағымдағы циклдің жұмысын БІРДЕН ТОЛЫҚ тоқтататын нұсқаулық: программа басқаруы циклден ТЫС жерге өтеді.

Жазылу үлгісі continue-мен бірдей — if шартының ішінде, БІРАҚ қызметі түбегейлі бөлек: Continue — БІР итерацияны өткізеді, ЦИКЛ ЖАЛҒАСАДЫ. Break — БҮКІЛ ЦИКЛДІ тоқтатады, циклден КЕЙІНГІ кодқа өтеді.

🚦
Аналогия: Continue — кезектегі БІР адамды өткізіп жіберу (кезек тұр); Break — кезектің ӨЗІН тарқату («бүгін жабылды, бәрі үйге!»).
Есеп: a=1-ден бастап, a<10 болғанша артады; a==5 болса — break.
a = 1
while a < 10:
    a += 1
    if a == 5:
        break
    print(a)
Талдау: a=2→print(2). a=3→print(3). a=4→print(4). a=5→break ІСКЕ ҚОСЫЛАДЫ, print ОРЫНДАЛМАЙДЫ, ЖӘНЕ ЦИКЛ ТОЛЫҚ ТОҚТАЙДЫ. 6,7,8,9 сандары МҮЛДЕМ ТЕКСЕРІЛМЕЙДІ.
Жауабы: 2, 3, 4 (осымен бітті!). Continue есебінде (a==5) нәтиже 1,2,3,4,6,7,8,9,10 болатын — ТЕК 5 жоқ еді. Мұнда 5-тен КЕЙІНГІНІҢ БӘРІ жоқ!
⚠️
Ең жиі қате: break пен continue-ды шатастыру. Есте сақтау тәсілі: continue = «жалғастыр» (сөзінің өзі айтып тұр), break = «сын, тоқта». Break-тен кейін цикл ӨЛГЕН, ешқашан қайта жанданбайды.
While True + break

Break-тің ЕҢ КҮШТІ қолданысы — «шексіз» циклмен жұптасқанда. Кейбір программалар «пайдаланушы өзі тоқтатқанша» жұмыс істеуі керек — мысалы, теңгені долларға айырбастау калькуляторы.

while True: — ӘДЕЙІ жасалған шексіз цикл, себебі True — ӘРҚАШАН ақиқат. Мұндай циклден шығудың ЖАЛҒЫЗ жолы — циклдің ІШІНДЕГІ break.

print("Айырбастау үшін 0-ді басыңыз.")
while True:
    a = input("Соманы теріңіз = ")
    if a == "0":
        break
    tenge = int(a)
    obmen = round(tenge / 420, 2)
    print(tenge, "теңге →", obmen, "доллар")
print("Аяқталды!")

Логикасы: пайдаланушы санды енгізсе — есептеледі, тағы сұралады (цикл шексіз айналады); «0» енгізсе — break, программа тоқтайды.

🛗
Аналогия: while True — лифт есігі сияқты: адам батырманы баспағанша (break шарты орындалмағанша), лифт есігі ашық қалады, кезекпен адамдарды қабылдай береді. Батырма басылса ғана, есік жабылады (break).
Іздеу есептері

Break-тің тағы бір классикалық қолданысы — ІЗДЕУ есептері: белгілі бір нәрсені тапқанша сұрыптап, тапқан соң ТОҚТАУ (қалғанын тексерудің қажеті жоқ).

Есеп: N ұзындықты сандар тізбегінде ТЕК БІР ғана нөл бар. Оның орнын тап.
N = int(input('N='))
i = p = 0
while i < N:
    i = i + 1
    x = int(input())
    if x == 0:
        p = i
        break
print('index=', p)
Талдау: i — реттік нөмір санауышы, p — табылған орынды сақтайды. Нөл табылса — оның орнын p-ге сақтап, ДЕРЕУ break — ҚАЛҒАН сандарды тексерудің қажеті жоқ!
Жауабы: сандар 4, 8, 0, 7, 4 → нөл 3-орында → «index= 3» (4-ші, 5-ші сандар МҮЛДЕМ СҰРАЛМАЙДЫ).

Басты идея: «тапқаннан кейін тоқта» — break-тің ТАБИҒИ қолданысы. For циклімен де дәл солай жазылады, тек for i in range(1, N+1) қолданылады.

Break пен continue бірге

Break пен continue БІР циклде БІРГЕ қолданылуы мүмкін, әрқайсысы өз шартымен:

i = 0
while i < 10:
    if i == 3:
        i += 1
        continue
    print(i)
    if i == 5:
        break
    i += 1

Талдау: i=3 болғанда — continue (арту, содан кейін өткізу; i += 1 continue-ден БҰРЫН тұр, өйткені continue-ден кейінгі i += 1 орындалмас еді). i=5 болғанда — break (толық тоқтау).

Мұндай құрылым: «кейбір мәндерді өткіз (continue), белгілі бір мәнге жеткенде толық тоқта (break)» деген есептерде қолданылады.

⚠️
Break-ты ШАРТСЫЗ (if-сіз) циклдің басына қою — цикл БІРІНШІ итерацияда-ақ тоқтайды, бұл ДЕРЛІК ӘРҚАШАН логикалық қате: циклдің мағынасы жоғалады. Break әрқашан ШАРТҚА байланысты болуы керек.
🎯 ҰБТ байланысы
Break бойынша тексерілетін дағды.
1
Break пен continue нәтижесін салыстыру — дәл БІР шарттағы екі кодтың нәтижесі мүлдем басқаша болады.
2
while True + break құрылымының жұмыс логикасы.
3
Іздеу есептерінде break қолданудың тиімділігі.
4
Циклдің қанша рет орындалғанын break бар кодта дұрыс санау (break-тен КЕЙІНГІ итерациялар ЖОҚ).
Сабақ қорытындысы
  • Break — циклді БІРДЕН ТОЛЫҚ тоқтататын нұсқаулық, ал continue — тек БІР итерацияны өткізеді.
  • Классикалық қолданысы: шексіз циклді (while True) басқарылатын ету, іздеу есептерінде «тапқаннан кейін тоқтау».
  • Екеуі бір циклде БІРГЕ де жұмыс істей алады, әрқайсысы өз шартымен.
  • Break шартсыз қойылса, цикл мағынасын жоғалтады.