25-блог: JavaScript даўамы: Цикл (loop) дегенимиз не? 5-бөлим
Цикл бул ең әҳмийетли программаластырыў түсиниклеринен бири. Бирақ, цикл деген сөздиң орнына loop деп инглизше терминди қолланыўды оңай көремен. Негизи, усы инглизше терминди пайдаланған әдеўир мақсетке муўапық.
Енди бағдарламa жазыўды үйренип, тәй-тәй қәдем басып киятырғанлар ушын loop-ты түсиниў қыйын болыўы мүмкин.
Loop не екенин аңсат етип түсиндириўге ҳәрекет етемен. Бирақ оғыры аңсатластырып жибериўге де болмайтуғынын билип қойыў лазым.
Мына жағдайды көз алдыңызға келтириң.
"Азанда ерте турыўым керек" деп, телефоныңызда будильникти қостыңыз.
Азанда будильникник шыңғырлағаннан "және бес минут уйқылап алайын" деп "snooze" түймесин бастыңыз. Бес минуттан кейин будильник және шыңғырлайды. Және "snooze" түймесин бастыңыз.
Бес минуттан кейин және шыңғырлайды. Сиз және бес минут уйқылап алғыңыз келип тур.
"Snooze" түймесин басасыз. Уйқыңыз тояман дегенше "snooze" түймесин қайта-қайта басып, уйқылап алыўыңыз мүмкин. Ҳазир, сиз бир исти тәкирар қылып атырсыз.
Және бир мысал келтирейик.
Қалтанызда бир миллион сум бар. Сол пулдың барлығы таўсылғанша күнине жүз мың сум саўа аласыз. Күнде жүз мың сўм саўатуғын ҳәрекетти 10 күн даўамында тәкирарлай аласыз.
Программаластырыўда да базы бир жумысларды тәкирар қылыўымыз керек болады. Сол ўақытта бизге "loop" жәрдемге келеди. Loop бул программаңыз ушын "қайталап исле" деген буйрықты беретуғын түймеге (кнопка) қусайды. Егер, loop болмаса, сол тәкирар ҳәрекетлерди өзлеримиз бирме-бир жазып отырыўымызға туўры келетуғын еди.
Loop дегенимиз не?
Loop бул берилген көрсетпелерди белгили бир шәрт қанатландырылмағaнша тәкирарлап амелге асыратуғын программалық структура есапланады.
Негизи, компьютердиң ең шебер ҳәм өнимдарлы етип қылатуғын жумысы бул тапсырманы тәкирарлап қылыў. "Бирден баслап миллиардқа шекем биримлеп сана" десеңиз де наразылық билдирмей бирден баслап миллиардқа шекем биримлеп санап бере алады.
Бүгин loop деген түсиникти JavaScript мысалында түсиндиремен. Басқа программаластырыў тиллеринде де дерлик бирдей мәниске ҳәм дүзилиске ийе.
Loop түрлери қандай?
JavaScript тилинде бир неше loop түрлери бар:
for loop
while loop
do...while loop
1. "for” loop дегенимиз не?
"for loop" ең көп қолланылатуғын loop түри. Ол белгили бир ҳәрекетти белгили бир дәрежеге шекем тәкирарлап беретуғын программалық структура есапланады.
Мәселен, аспандағы жулдызларды санағыңыз келип тур. Санап санына жете алмайтуғынымызды билгенимиз ушын, 100 дана жулдыз санап қояқжақпыз.
Усы тәкирар қылатуғын ҳәрекетти кoуд пенен былай жаза аламыз:
for(let star=1; star <= 100; star++){
console.log(" Sanag'an juldizim: ", star);
}Егер усы кoудты браўзер консолда жүргизип көрсек, мынандай нәтийжеге ерисемиз. Компьютер JavaScript-те жазылған кoудты оқып, жулдызды жүзге шекем санап берди.
Егер "for loop" болмағанда, жоқарыдағы кoудты 100 рет бирме-бир жазып отырғaн болар едик:
console.log("Sanag'an juldizim: ", 1);
console.log("Sanag'an juldizim: ", 2);
console.log("Sanag'an juldizim: ", 3);
console.log("Sanag'an juldizim: ", 4);
console.log("Sanag'an juldizim: ", 5);
....
console.log("Sanag'an juldizim: ", 98);
console.log("Sanag'an juldizim: ", 99);
console.log("Sanag'an juldizim: ", 100);Ўайбу, онда программист болып не қыламыз? Жазыўшы бола қояйық 😆
"for loop" усылайынша "for" деген инглизше терминнен пайдаланып жазылады. Ол қарақалпақшасына "ушын" деген мәнисти береди. Сонда жоқарыдағы кoуд не деп атыр?
"for" бул gilt сөз, ол тәкирар ҳәрекетти баслап бериўши арнаўлы термин.
"for" деген сөзден кейин қаўсырманың ишине нешe рет, қалай, қайтип тәкирарлаўымыз керек екенин жазамыз. Қаўсырманың ишине жазатуғын кoудты да белгили бир синтаксис қағыйдаға бойсынып жазамыз.
"for" қаўсырманын ишине:
Тәкирарланыўшы ҳәрекеттиң себепшиси/объекти: let star = 1
Неше рет тәкирарланыўы керек ҳаққындағы шеклеў: star <= 100
Тәкирарланған ҳәрекетти белгилеп барыўшы есапшы: star++
Қәләген "for loop" кoуды усы дүзилиске ийе болады. Бул структураны ядлап алыўды мәсләҳат беремен.
Демек, жоқарыдағы кoудты қарапайым тилде айтсақ, мынандай болады:
"Жулдызды жүзге шекем санап, ҳәр санағаныңда экранға санаған жулдызың нешинши екенин көрсетип бер."
Айтып өтиў керек, компьютер шынлап аспанға қарап жулдыз санап жүргени жоқ 🥲
Сиз сораған нәрсени тек 100 рет тәкирарлап берди. Жулдыздың орнына асқабақ санасаңыз да болады.
for(let asqabaq=1; asqabaq <= 100; asqabaq++){
console.log("Sanag’an asqabag’im: ", asqabaq);
}Жоқарыдағы кoудты консолда иске қоссаңыз, мынандай көриниске ийе болады.
Жоқарыдағы кoуд 3 тийкарғы бөлимнен ибәрaт:
Алғашқы мәнис бөлими:
let asqabaq=1 деп, бирден баслап санаў ушын алғашқы мәнисти бердик. Егер let asqabaq = 35 деп алсақ, компьютер отыз бестен баслап санайды.
for(let asqabaq=35; asqabaq <= 100; asqabaq++){
console.log("Sanag’an asqabag’im: ", asqabaq);
}Шәрт бөлими:
asqabaq <= 100 деген бөлими бул шәрт бөлими. Яғный, жүзге шекем сана деп шәрт/шеклеў қойып атырмыз. Бул шәрт 100, 1000, 100 000 болыўы да мүмкин. Компьютер тек сол шәрттеги берилген мәниске шекем берилген көрсетпени тәкирарлап қылады.
Өсиўши/азайыўши бөлими:
asqabaq++ дегенимиз өзи не? Еки плюс белгиси бул өсиўди билдиреди. Ол тәкирарлап қылған жумысымызды есапқа алыў ушын керек. Бир рет асқабақты санап болып, есапқа бирди қосамыз. Сол жерде асқабақтың өзине бирди қосып атырмыз.
"Шөжени гүзде санаймыз" деген мақал бар еди. 50 шөже санайтуғын "for loop" жазып көрейик.
for(let shoje=1; shoje <= 50; shoje++){
console.log("Sanag'an sho'jem: ", shoje);
}2. "while loop" дегенимиз не?
"while loop" та "for loop" деп түсиндиргенимиздиң айнымаған өзи. Бирақ бир-еки өзгешелиги бар.
Ол да белгили бир ҳәрекетти тәкирарлаў ушын қолланылатуғын программалық структура.
"while" деген инглизше терминнен пайдаланып жазылады. Қарақалпақша мәнисин "даўамында, қылғанша" деп алсақ болады.
Шайнекте 1 литр қара шай бар деп елестетип көрейик. Шайнек босайман дегенше бир кесе қара шай ишемиз. Бир пияла кесе менен 200 миллилитр қара шай ишиўге болады.
Демек, қара шай таўсылғанша қара шай ишемиз деген кoудты қалай "while loop" жәрдеминде жазсақ болады:
let qarashay = 1000;
while (qarashay > 0) {
console.log("Qara shay ishtim.");
qarashay = qarashay - 200;
}Усы жерде "Қара шай иштим" деген жазыў неше рет тәкирарланады деп ойлайсыз?
Егер билмесеңиз, мына нәтийжеге қараң:
Көрип турғаныңыздай "Қара шай иштим" деген жазыў 5 рет қайталанған.
1 литр қара шай 1000 миллилитрге тең. Ҳәр ишкенимизде 200 миллилитр ишсек, бес рет қара шай ише аламыз. Енди бул жағы әпиўайы арифметика😇
Жоқарыда жазылған кoудты жалпақ тилде айтсақ, мынандай болады:
"Қара шайдың көлеми нол литрден жоқары болып турғанша, бир кесе қара шай ишип, ‘Qara shay ishtim.’ деп айт!"
Итибар берген болсаңыз, "while" деген loop термининиң қаўсырмасына тек шәрт/шеклеў жазылады.
"while loop" та 3 тийкарғы бөлимнен ибәрaт болады:
Алғашқы мәнис бөлими: qarashay = 1000;
Шеклеў/шәрт бөлими: qarashay > 0
Өсиўши/азайыўши бөлими: qarashay = qarashay - 200;
Егер кoудымыздан азайтыўшыны алып тасласақ, кoуд шексиз "Қара шай иштим" деп айтады.
Себеби, қара шайдың көлеми 1 литрден азаймайды. Ҳәм qarashay > 0 деген шәртимиз ҳәр дайым дурыc болады.
let qarashay = 1000;
while (qarashay > 0) {
console.log("Qara shay ishtim.");
}Мына кoудты браўзер консолында жүргизсек, компьютер "Қара шай иштим" деген жазыўды еки миллион уш жүз мыңнан аслам басып шығарғанын көремиз. Компьютер тоқтаўды билмейди. Яды толғанша "қара шай ишип" кейин қәтени келтирип шығарады🤪
Соның ушын loop пенен ислекенимизде итибарлы болыўымыз керек.
Алғашқы мәнисти дурыc қойыў,
Шеклеў/шәрт бөлимин дурыc жазыў,
Өсиўши ямаса азайтыўшыны дурыc жазыў да әҳмийетли.
Ҳәм булардың ҳәммесин кoуд жазып практикa қылып үйренип кетесиз.
3. "do while loop" дегенимиз не?
"do while loop" та алдынғы loop түрлерине қусайды. Төмендеги силтемеге кирип, үйренип алыўыңызды мәсләҳат беремен:
Қайсысын қашан қолланамыз?
Ҳәр бир loop түрин өз зәрүрлигиңизге, қәлеўиңизге қарап пайдалансаныз болады.
Кейинги блогларда JavaScript жәрдеминде кoуд жазғанымызда loop-тан пайдаланып көбирек мысаллар келтирип жазамыз.
Бүгинги блогта loop не екенин, қалай қолланылатуғынын билиўдин өзи жетерли!








