Break циклін басқару
Ойыншы сандар тізбегінен нөлді іздейді делік: 4, 8, 0, 7, 4. Үшінші санда нөл тапты! Енді төртінші, бесінші санды тексеруге не қажет? Мақсатқа жеттің қой — ТОҚТА! Дәл осы — break операторының логикасы: керекті нәтижеге жеткен сәтте циклді ТОЛЫҚ ТОҚТАТУ. Бұл — өткен сабақтағы continue-мен ШАТАСТЫРЫЛАТЫН, бірақ мүлдем басқа қызмет атқаратын оператор.
Өткен сабақта continue-ды «кезектегі бір адамды өткізіп жіберу» дедік — кезек ЖАЛҒАСАДЫ. Ал break — «керегімді таптым, кезектен МҮЛДЕМ ШЫҒАМЫН» дегенмен бірдей.
Break (үзілу) — белгілі бір шарт орындалғанда ағымдағы циклдің жұмысын БІРДЕН ТОЛЫҚ тоқтататын нұсқаулық: программа басқаруы циклден ТЫС жерге өтеді.
Жазылу үлгісі continue-мен бірдей — if шартының ішінде, БІРАҚ қызметі түбегейлі бөлек: Continue — БІР итерацияны өткізеді, ЦИКЛ ЖАЛҒАСАДЫ. 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-тің ЕҢ КҮШТІ қолданысы — «шексіз» циклмен жұптасқанда. Кейбір программалар «пайдаланушы өзі тоқтатқанша» жұмыс істеуі керек — мысалы, теңгені долларға айырбастау калькуляторы.
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, программа тоқтайды.
Break-тің тағы бір классикалық қолданысы — ІЗДЕУ есептері: белгілі бір нәрсені тапқанша сұрыптап, тапқан соң ТОҚТАУ (қалғанын тексерудің қажеті жоқ).
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 БІР циклде БІРГЕ қолданылуы мүмкін, әрқайсысы өз шартымен:
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 — циклді БІРДЕН ТОЛЫҚ тоқтататын нұсқаулық, ал continue — тек БІР итерацияны өткізеді.
- Классикалық қолданысы: шексіз циклді (while True) басқарылатын ету, іздеу есептерінде «тапқаннан кейін тоқтау».
- Екеуі бір циклде БІРГЕ де жұмыс істей алады, әрқайсысы өз шартымен.
- Break шартсыз қойылса, цикл мағынасын жоғалтады.