Continue циклін басқару
Дүкенде кезекте тұрсың делік. Кезектегі әр адамды «қызмет көрсету керек пе?» деп тексересің. Кенеттен таныс адам шығып, «мен жай сұрақ қоямын, қызмет керек емес» дейді — оны өткізіп жібересің де, кезекті ЖАЛҒАСТЫРАСЫҢ. Кезектің өзі тоқтаған жоқ, тек БІР адам «өткізіп жіберілді». Дәл осы — Continue операторының логикасы: циклдің БІР итерациясын өткізіп жіберу, бірақ циклдің ӨЗІН тоқтатпау.
Циклде кейде БАРЛЫҚ итерацияны бірдей орындағың келмейді — кейбіреуін «өткізіп жібергің» келеді. Мысалы, 1-ден 100-ге дейінгі сандардан ТЕК тақтарын шығару керек болса, жұп сандарға тап болғанда не істейміз?
Continue (жалғастыру) — белгілі шарт орындалғанда ағымдағы итерацияны тоқтатып, циклдің КЕЛЕСІ итерациясына бірден өтетін нұсқаулық.
Синтаксисі қарапайым — жалғыз сөз: continue. Оны әдетте if шартының ІШІНЕ жазамыз:
for i in ...: if <шарт>: continue <қалған командалар>
Логикасы: шарт орындалса — continue іске қосылады, содан кейінгі командалар ӨТКІЗІЛІП ЖІБЕРІЛЕДІ, БІРАҚ цикл ӨЗІ ЖАЛҒАСА БЕРЕДІ — келесі итерацияға көшеді. Шарт орындалмаса — бәрі әдеттегідей орындалады.
Есіңде болсын: continue циклді ТОҚТАТПАЙДЫ, тек БІР итерацияны «қысқартады».
N, M = map(int, input().split()) for i in range(N, M+1): if i % 2 == 0: continue print(i, end=' ')Талдау: цикл N-нен M-ге дейін ӘРБІР санды қарайды. Жұп болса (i % 2 == 0), continue іске қосылады — print жолы ОРЫНДАЛМАЙДЫ, цикл КЕЛЕСІ i-ге өтеді.
Жауабы: N=14, M=25 болса → 15 17 19 21 23 25.
Маңызды факт: continue ЕКІ циклде де (for және while) БІРДЕЙ жұмыс істейді. Дәл осы тақ сандар есебін while-мен де жазуға болады:
N, M = map(int, input().split()) N = N - 1 while N <= M: N = N + 1 if N % 2 == 0: continue print(N, end=' ')
Нәтиже дәл СОЛ: 15 17 19 21 23 25. Қай циклді таңдау — есептің табиғатына байланысты (қайталану саны белгілі ме — for, белгісіз бе — while).
a += 1 # алдымен арт if a == 5: continue # содан кейін ғана тексер print(a)
Ал енді Python-дың таңғажайып мүмкіндігін ашайық: for циклі ТЕК сандармен жұмыс істемейді! Ол ЖОЛДАРМЕН (мәтінмен), тізімдермен де жұмыс істей алады.
for i in "Үстел": print(i)
Бұл цикл жолдың ӘРБІР ӘРПІ бойынша жүреді: «Ү», «с», «т», «е», «л» — бес рет.
s = input('s=') for i in s: if i == 'A' or i == 'a': continue print(i, end='')Талдау: for циклі s жолының ӘРБІР әрпі бойынша жүреді. Әріп «a» немесе «A» болса — continue, print ЖҰМЫС ІСТЕМЕЙДІ.
Жауабы: «Aduyaaaakeraasd» → «duykersd».
Continue қашан қолданылады? Екі негізгі жағдай: 1) Сүзгіден өткізу — белгілі бір мәндерді өткізіп жіберу керек болғанда; 2) Циклді жеңілдету — continue-сыз кірістірілген if-тердің қабат-қабат болуы қажет болса, continue сол құрылымды жазықтандырады.
Мысалы, continue-сыз жазсақ та дұрыс жұмыс істейді: if i % 2 != 0: print(i, end=' '). Бірақ бірнеше шарт болса, тізбектелген if-тер кодты «сатылап» тереңдетеді. Continue сол «сатыны» жояды — код ЖАЗЫҚ, оқуға ЖЕҢІЛ болады.
- Continue — циклдің БІР итерациясын өткізіп жіберетін, бірақ циклдің ӨЗІН жалғастыратын нұсқаулық.
- For мен while-де бірдей жұмыс істейді, әдетте if шартының ішінде тұрады.
- Ең маңызды ереже: санауышты арттыратын жол continue-ден БҰРЫН болуы керек.
- Continue тек сандарды емес, жолдарды (мәтінді) сүзуге де қолданылады.