Kuhesabu marudio katika kitanzi cha javascript. Utendaji, onyesho tofauti la ukweli. Kitanzi kilicho na hali ya posta

|

Kwa kuwa wakati na kufanya...huku ni masharti, hutekelezwa wakati taarifa iliyotolewa inapotathmini kuwa kweli. Kwa taarifa pia inategemea masharti, lakini hutoa kazi za ziada, kama vile kihesabu kitanzi, ambacho hukuruhusu kuweka idadi ya marudio ya kitanzi mapema.

Mafunzo haya yatakufundisha jinsi ya kutumia kwa, kwa...ya na kwa...katika vitanzi, ambavyo ni vipengele muhimu vya upangaji programu katika JavaScript.

kwa vitanzi

A for loop inaweza kutumia hadi misemo mitatu ya hiari kutekeleza kizuizi cha msimbo mara kwa mara.

Wacha tuangalie syntax ya kitanzi.

kwa (kuanzisha; sharti; usemi wa mwisho) (
// kanuni ya kutekelezwa
}

  • Uanzishaji (ikiwa umebainishwa) huanza kaunta na kutangaza vigezo.
  • Hali hiyo inachakatwa baadaye. Ikiwa ni kweli, programu itatekeleza msimbo ufuatao; ikiwa ni uongo, kitanzi kitavunjika.
  • Kisha kanuni ambayo inahitaji kutekelezwa inachakatwa.
  • Ikiwa usemi wa mwisho umebainishwa, husasishwa, baada ya hapo kitanzi kinarudi kusindika hali hiyo.

Ili kuelewa jinsi hii inavyofanya kazi, hebu tuangalie mfano wa msingi.


kwa (wacha mimi = 0; i< 4; i++) {
// Chapisha kila marudio kwenye koni
console.log(i);
}

Ukiendesha nambari hii, utapata matokeo haya:

0
1
2
3

Katika mfano hapo juu kwa kitanzi huanza na kutofautisha let i = 0, ambayo itaanza kitanzi na thamani 0. Hali i imeainishwa kwenye kitanzi.< 4, а это означает, что до тех пор, пока значение i меньше 4, цикл будет продолжать работу. Финальное выражение i++ определяет счетчик для каждой итерации цикла. console.log(i) выводит числа, начиная с 0, и останавливается, как только i равняется 4.

Bila kitanzi, nambari inayofanya vivyo hivyo itakuwa:

// Weka kigezo cha awali kuwa 0
acha mimi = 0;
// Tofauti ya kuongeza kwa mikono kwa 1 mara nne
console.log(i++);
console.log(i++);
console.log(i++);
console.log(i++);

Bila kitanzi, kizuizi cha msimbo kinajumuisha zaidi mistari. Ili kuongeza idadi ya nambari, tutalazimika kuongeza mistari zaidi kwenye nambari.

Wacha tuangalie kila usemi kwenye kitanzi.

Uanzishaji

Usemi wa kwanza kwenye kitanzi ni uanzishaji.

Inatangaza kutofautisha kwa kutumia neno kuu la let (unaweza pia kutumia neno kuu var) na huipa thamani 0. Unaweza kutumia majina yoyote ya kutofautiana katika vitanzi, lakini variable i inahusishwa na neno "iteration" na haipakia msimbo.

Hali

Kama wakati na fanya...huku vitanzi, kwa vitanzi huwa na hali. KATIKA katika mfano huu Hii:

Hii inamaanisha kuwa usemi huo hutathmini kuwa kweli mradi tu thamani ya i ni chini ya 4.

Usemi wa mwisho

Huu ni usemi ambao hutekelezwa mwishoni mwa kila kitanzi. Mara nyingi hutumiwa kuongeza au kupunguza thamani ya kutofautiana, lakini inaweza kutumika kwa madhumuni mengine.

Katika mfano huu, kitanzi huongeza kutofautisha kwa moja. Usemi i++ hufanya kitu sawa na i = i + 1.

Tofauti na mwanzo na hali, usemi wa mwisho hauishii na semicolon.

Mwili wa Kitanzi

Sasa unajua vipengele vyote vya kitanzi. Hebu tuangalie kanuni tena.

// Anzisha a kwa taarifa na marudio 5
kwa (wacha mimi = 0; i< 4; i++) {
console.log(i);
}

Usemi wa kwanza unabainisha thamani ya awali variable (0), ya pili inafafanua hali (kitanzi kinatekelezwa wakati mimi ni chini ya 4), na ya tatu inabainisha hatua ya kila iteration (katika kwa kesi hii thamani itaongezeka kwa 1).

Console itatoa maadili: 0, 1, 2 na 3. Kitanzi kitavunjika.

Maneno ya Hiari

Yote kwa matamshi ya kitanzi ni ya hiari. Kwa mfano, unaweza kuandika sawa kwa kitanzi, lakini ruka uanzishaji na uanzishe utofautishaji nje ya kitanzi.


acha mimi = 0;
// Anzisha kitanzi
kwa (; i< 4; i++) {
console.log(i);
}
0
1
2
3

Katika kesi hii, semicolon ya kwanza inaonyesha kuwa mwanzo haupo.

Kumbuka: Hata kama hutumii mojawapo ya maneno, lazima ujumuishe semicolon, vinginevyo kitanzi kitatafsiriwa vibaya.

Pia, kwa mfano, unaweza kuondoa hali hiyo kutoka kwa kitanzi. Ili kusimamisha kitanzi wakati thamani ya kigezo inakuwa kubwa kuliko 3, tumia if and break.

// Tangaza kutofautisha nje ya kitanzi
acha mimi = 0;
// Acha uanzishaji na hali
kwa (; ; i++) (
ikiwa (i> 3) (
mapumziko;
}
console.log(i);
}
0
1
2
3

Muhimu! Katika vitanzi bila hali, lazima utumie taarifa ya mapumziko. Vinginevyo, kitanzi hakitaweza kuvunja (loops vile huitwa kutokuwa na mwisho) na itasababisha kivinjari kuharibika.

Unaweza pia kuondoa usemi wa mwisho kutoka kwa kitanzi. Hatua inaweza kutajwa mwishoni mwa msimbo wa kitanzi. Katika kesi hii, lazima uache wahusika wote ";" kwenye mabano, vinginevyo kitanzi hakitafanya kazi.

// Tangaza kutofautisha nje ya kitanzi
acha mimi = 0;
// Acha taarifa zote
kwa (;;) (
ikiwa (i> 3) (
mapumziko;
}
console.log(i);
i++;
}
0
1
2
3

Kama unavyoona, misemo ya kitanzi hutoa nambari fupi zaidi na inayoweza kusomeka.

Kubadilisha Safu

A kwa kitanzi inaweza kutumika kurekebisha safu.

Mfano ufuatao unaonyesha jinsi ya kuunda safu tupu na kuijaza na vigezo kwa kutumia kihesabu cha kitanzi. Unda faili ya modifyArray.js na uongeze nambari ifuatayo kwake:

// Anzisha safu tupu
let arrayExample =;
// Anzisha kitanzi ili kukimbia mara 3
kwa (wacha mimi = 0; i< 3; i++) {
// Sasisha safu na thamani tofauti
arrayExample.sukuma(i);
console.log(arrayExample);
}

Zindua programu. Itatoa:

[ 0 ]
[ 0, 1 ]
[ 0, 1, 2 ]

Kitanzi kilichotolewa kinatekelezwa hadi i< 3 перестанет быть истинным. Массив arrayExample выводится в консоль в конце каждой итерации. Так вы можете увидеть, как массив пополняется новыми значениями.

Urefu wa safu

Wakati mwingine kitanzi kinahitaji kutekelezwa mara kadhaa, lakini kuamua idadi inayotakiwa ya marudio ni ngumu. Badala ya kutangaza idadi ya marudio, kama katika mifano iliyopita, unaweza kutumia mali ya urefu kufanya kitanzi kukimbia mara nyingi kama kuna vitu kwenye safu.

// Tangaza safu iliyo na vitu 3
acha samaki = [ "flunder", "salmon", "pike" ];
//Anzisha ili kitanzi kiendeshe kwa jumla ya urefu wa safu
kwa (wacha mimi = 0; i< fish.length; i++) {
// Chapisha kila kitu kwenye koni
console.log(samaki[i]);
}

Mpango kama huo utatoa matokeo:

flounder
lax
pike

Kitanzi hiki hurudia kupitia kila safu ya faharisi kwa kutumia samaki[i]. Inaongoza kwa sasisho la nguvu index katika kila iteration.

Moja ya zana muhimu zaidi katika programu ni vitanzi. Wao ni muhimu katika kesi ambapo unahitaji kufanya kitu idadi fulani ya nyakati.

Ikiwa kuna kazi kama hiyo, kwa mfano, kuonyesha mstari "hello kila mtu" mara 1000. Kisha, bila kutumia kitanzi, kwanza itachukua muda mwingi na pili, haitaonekana kuwa nzuri sana. Ndiyo maana unahitaji kujua mizunguko kikamilifu kwa sababu hutumiwa mara nyingi sana.

Kuna vitanzi vinne katika programu, haya ni wakati, fanya-wakati, kwa na mbele. Kila moja yao ina syntax yake na kila moja hutumiwa katika hali fulani.

Vitanzi vinavyotumiwa zaidi ni vya na mbele, kisha wakati, na kufanya-wakati kitanzi ni nadra sana.

Na tutaanza na wakati kitanzi.

Syntax ya kitanzi cha wakati ni kama ifuatavyo:


Kwanza, tunatangaza kutofautiana i, ambayo ni counter, na ndani ya kitanzi tunaongeza counter hii. Ndani ya mabano tunaandika sharti la kuingia/kutoka kwenye kitanzi.

Maoni! Andika hali ya kuondoka kwa usahihi, vinginevyo inaweza kutokea mzunguko usio na mwisho na kisha maandishi yataganda. Mzunguko kama huo unaweza kutokea ikiwa, kwa mfano, tunaandika kweli katika hali ya kutoka.

Kwa mfano, hebu tuchapishe kamba "Halo kila mtu!" mara 10.

Var i = 0; wakati(i"); i++;)

Tofauti naweza kuanza kutoka 0 au 1 au kutoka kwa nambari nyingine yoyote.

Hali ya kuondoka ni wakati huo huo hali ya kuingia. Kitanzi hufanya kazi kama ifuatavyo: Kwanza, inakagua ikiwa kutofautisha ni chini ya 10, na ikiwa hali ni kweli, basi tunaingiza kitanzi, vinginevyo, sivyo. Katika kesi hii, ikiwa kutofautisha i ni sawa na 30, kwa mfano, basi kitanzi hakitatekelezwa, kwa sababu 30 sio chini ya 10.

Tuliingia kwenye mzunguko, tukachapisha mstari "Hello kila mtu", tukaongeza counter na tena kwenda kwenye hali, ambapo tunaangalia tena ikiwa thamani ya kutofautiana i ni chini ya 10, kisha tunaingia kwenye mzunguko, vinginevyo tunatoka. Na hii hutokea mpaka wakati ambapo hali ya kuingia inakuwa ya uongo, yaani, thamani ya kutofautiana i itakuwa 10. 10 sio chini ya 10, kwa hiyo hatuingii tena kitanzi, lakini tuendelee.

Maoni! Usisahau kuongeza kihesabu (i++), vinginevyo utaishia na kitanzi kisicho na kikomo.

Tumeshughulika na kitanzi cha wakati, sasa wacha tuendelee kwenye kitanzi cha kufanya wakati.

Sintaksia ya kitanzi cha kufanya-wakati ni kama ifuatavyo:


Tofauti kati ya kitanzi cha muda na kitanzi cha do-wakati ni kwamba kitanzi cha kufanya-wakati kinaweza kutekelezwa angalau mara moja, bila kujali hali, ambapo kitanzi cha muda hakitatekelezwa hata kidogo ikiwa hali ni ya uwongo.

Maoni! Kama kitanzi cha wakati, usisahau kuongeza kihesabu cha i.

Tuendelee na mazoezi. Kwa mfano, hebu tuhesabu bidhaa ya nambari kutoka 1 hadi 10.

Var i = 1; var uzalishaji = 1; fanya( production *= i; i++; )wakati(i

Matokeo yake yatakuwa nambari 3628800. Katika hatua ya kwanza, sisi mara moja tuliingia kitanzi, licha ya hali yake, ambapo uzalishaji wa operesheni *= i ulifanyika (hii ni sawa na uzalishaji = uzalishaji * 1). Kisha sisi huongeza counter. Baada ya kuongezeka, ina thamani ya 2. Na mwisho tunaangalia hali, ikiwa thamani ya kukabiliana ni chini ya au sawa na 10, basi tunaenda kwenye iteration inayofuata ya kitanzi, vinginevyo tunatoka kitanzi na kuendelea. .

kwa kitanzi

Kama nilivyoandika hapo juu, kitanzi cha kitanzi hufanyika mara nyingi, kwa hivyo unahitaji kuijua vizuri.

kwa syntax ya kitanzi inayofuata:


Kwa ufahamu bora, hebu tutatue tatizo rahisi. Wacha tuseme tunahitaji kuhesabu jumla ya nambari kutoka 1 hadi 1000 kwa kutumia kitanzi.

Var muhtasari = 0; kwa (var i = 1; i

Tunahifadhi hati, tuifungue kwenye kivinjari na uone kuwa matokeo ni 500500.

Maoni! Ikiwa kuna kauli moja tu katika kitanzi, basi braces curly si lazima.

Ili kuonyesha, hebu tuonyeshe kamba kwenye skrini mara 5, kwa mfano "Hujambo!"

Kwa (var i = 1; i

Maoni! Baada ya kitanzi kutekelezwa, thamani ya mwisho inabaki katika kutofautisha i.

Sasa hebu tutatue tatizo kidogo zaidi, kwa mfano tunahitaji kuchapisha kamba "Halo" mara 100. Na ili yote isiishie kwenye safu moja, basi baada ya kila marudio ya 10, wacha tuende mstari mpya. Na mwisho tutachapisha thamani ya kutofautisha i.

Kwa (var i = 1; i<= 100; i++){ document.write("привет!"); if(i % 10 == 0)  document.write("
"); ) hati.andika("

Tofauti i = " + i +"

"); // i = 101

kitanzi cha mbele Kawaida hutumika kurudia juu ya vitu na safu. Kwa hiyo, nitazungumzia juu yake katika makala inayoelezea kufanya kazi na safu.

taarifa ya kuvunja imekusudiwa kuondoka kwa kitanzi kwa nguvu.

Endelea mwendeshaji hukuruhusu kukatiza urudiaji wa sasa wa kitanzi na kuendelea hadi inayofuata.

Kwa ufahamu bora, tutatatua pia shida rahisi. Wacha tuseme tunataka kuhesabu jumla ya nambari zisizo za kawaida kutoka 1 hadi 20. Na tunapofikia marudio ya 15, tutatoka kwenye kitanzi.

Var muhtasari = 0; kwa (var i = 1; i<= 20; i++){ //Пропускаем текущею итерацию цикла if(i % 2 == 0) continue; summa += i; //Выходим совсем из цикла. if(i == 15) break; document.write(i + ". Итерация
"); ) hati.andika("

muhtasari= " + muhtasari +"

"); //summa = 64

Tunahifadhi hati, tuifungue kwenye kivinjari na uangalie matokeo.

Ili kufanya mazoezi, jaribu kubadilisha hati iliyoandikwa ili ihesabu jumla ya nambari sawa.

Hii inamaliza makala hii. Sasa unajua syntax ya wakati, fanya-wakati, kwa vitanzi na jinsi ya kufanya kazi navyo. Pia tulikutana kuvunja na kuendeleza kauli.

Sasisho la mwisho: 04/08/2018

Loops hukuruhusu kufanya kitendo mara nyingi kulingana na hali fulani. JavaScript ina aina zifuatazo za vitanzi:

    kwa..katika

    kwa..ya

    wakati

    fanya..wakati

kwa kitanzi

Kwa kitanzi kina ufafanuzi rasmi ufuatao:

Kwa ([kuanzisha kaunta]; [hali]; [mabadiliko ya kaunta])(// vitendo)

Kwa mfano, tunatumia kwa kitanzi kurudia kupitia vipengele vya safu:

Var people = ["Tom", "Alice", "Bob", "Sam"]; kwa (var i = 0; i

Sehemu ya kwanza ya tamko la kitanzi - var i = 0 - inaunda na kuanzisha counter - variable i. Na kabla ya kitanzi kutekeleza, thamani yake itakuwa 0. Kimsingi, hii ni sawa na kutangaza kutofautiana.

Sehemu ya pili ni hali ambayo kitanzi kitatekelezwa. Katika kesi hii, kitanzi kitaendelea hadi thamani ya i ifikie thamani sawa na urefu wa safu ya watu. Unaweza kupata urefu wa safu kwa kutumia mali ya urefu: people.length .

Sehemu ya tatu ni kuongeza counter kwa moja.

Na kwa kuwa kuna vipengele 4 katika safu, kizuizi cha kitanzi kitaendesha mara 4 hadi thamani ya i inakuwa sawa na watu. urefu (yaani, 4). Na kila wakati thamani hii itaongezeka kwa 1. Kila marudio ya mtu binafsi ya kitanzi inaitwa iteration. Kwa hivyo, katika kesi hii, marudio 4 yatafanya kazi.

Na kwa kutumia usemi people[i] tunaweza kupata kipengee cha safu kwa matokeo yanayofuata kwenye kivinjari.

Sio lazima kuongeza counter kwa moja, unaweza kufanya vitendo vingine nayo, kwa mfano, kupunguza kwa moja:

Var people = ["Tom", "Alice", "Bob", "Sam"]; kwa(var i = people.length - 1; i >= 0; i--)( console.log(people[i]);)

Katika kesi hii, safu ni pato kutoka mwisho, na safu inarudiwa kutoka i = 3 hadi i = 0.

kwa..katika

Kitanzi cha for..in kimeundwa ili kujirudia kupitia safu na vitu. Ufafanuzi wake rasmi ni:

Kwa (faharisi katika safu) (// vitendo)

Kwa mfano, wacha turudie juu ya vitu vya safu:

Var people = ["Tom", "Alice", "Bob", "Sam"]; for(var index in people)( console.log(people); )

Kitanzi kwa...ya

Kwa...ya kitanzi ni sawa na kwa...katika kitanzi na imeundwa ili kujirudia kupitia mikusanyiko, kama vile safu:

Waruhusu watumiaji = ["Tom", "Bob", "Sam"]; kwa (ruhusu val ya watumiaji) console.log(val);

Kipengele cha sasa cha mkusanyo kinachorudiwa huwekwa kwenye kigezo cha val, ambacho thamani yake huchapishwa kwenye kiweko.

wakati kitanzi

Kitanzi cha wakati kinaendelea mradi hali fulani ni kweli. Ufafanuzi wake rasmi ni:

Wakati(hali)(// vitendo)

Tena, tutaonyesha vitu vya safu kwa kutumia wakati:

Var people = ["Tom", "Alice", "Bob", "Sam"]; var index = 0; wakati (index< people.length){ console.log(people); index++; }

Kitanzi cha wakati hapa kitatekeleza hadi thamani ya faharasa iwe sawa na urefu wa safu.

fanya..wakati

Katika kitanzi cha kufanya, nambari ya kitanzi inatekelezwa kwanza, na kisha hali katika taarifa ya wakati inakaguliwa. Na kwa muda mrefu hali hii ni kweli, mzunguko unarudia. Kwa mfano:

Var x = 1; fanya ( console.log(x * x); x++; )wakati(x< 10)

Hapa msimbo wa kitanzi utaendesha mara 9 hadi x inakuwa 10. Kitanzi cha do loop kinahakikisha kwamba vitendo vitatekelezwa angalau mara moja, hata kama hali katika taarifa ya wakati si kweli.

Endelea na kuvunja kauli

Wakati mwingine ni muhimu kutoka kwa kitanzi kabla ya kukamilika. Katika kesi hii, tunaweza kutumia taarifa ya mapumziko:

< array.length; i++) { if (array[i] >10) mapumziko; document.write(array[i] + "
"); }

Kitanzi hiki kinarudia kupitia vipengele vyote vya safu, lakini vipengele vinne vya mwisho havitaonyeshwa kwenye kivinjari, kwani kuangalia ikiwa (safu[i] > 10) kutasumbua kitanzi na mwendeshaji wa mapumziko, wakati inarudia kupitia safu hufikia kipengele cha 12.

Ikiwa tunahitaji tu kuruka marudio, lakini sio kutoka kwa kitanzi, tunaweza kutumia taarifa ya kuendelea:

Var safu = [ 1, 2, 3, 4, 5, 12, 17, 6, 7]; kwa (var i = 0; i< array.length; i++) { if (array[i] >10) kuendelea; document.write(array[i] + "
"); }

Katika kesi hii, ikiwa programu inakabiliwa na nambari kubwa zaidi ya 10 katika safu, basi nambari hii haitaonyeshwa kwenye kivinjari.

Kama lugha zingine za programu, JavaScript hutumia mizunguko .
Maneno machache kuhusu kusudi lao kuu. Tuseme tuna kizuizi cha msimbo ambacho hakika kinahitaji kurudiwa idadi fulani ya mara mfululizo:

Var mew = "Mew!";
console.log ("Paka anasema:");

// hapa kuna msimbo unaorudiwa
console.log(mew);
console.log(mew);
console.log(mew);
console.log(mew);

Katika kesi hii, tunarudia kuandika mstari "Mew!" kwa console. haswa mara 4. Tunaona hilo ikibidi turudie tena block tata kanuni, itakuwa ngumu sana. Kwa hivyo, utaratibu unahitajika ambao utarudia kizuizi fulani cha nambari nambari inayotakiwa ya nyakati. Hivi ndivyo inavyofanya mzunguko .

JS hutumia vitanzi sawa na vingine lugha maarufu upangaji programu (C/C++, PHP, JAVA):


  • kwa ( ) - hurudia kizuizi fulani cha msimbo kulingana na vigezo vilivyotolewa

  • wakati (booleanExpression) - hurudia kizuizi cha msimbo kulingana na thamani ya boolean booleanExpression

  • kufanya wakati (booleanExpression) - sawa na aina ya awali ya mzunguko, lakini kwa upekee wake

Baada ya kila moja ya miundo hii, lazima uonyeshe moja iliyowekwa kwa kutumia braces curly { } kizuizi cha nambari ambacho kitarudiwa. Marudio katika mzunguko yenyewe huitwa marudio . Kizuizi cha nambari ambayo inarudiwa inaitwa mwili wa kitanzi .

Katika somo hili tutaangalia for() kitanzi. Kama thamani ya chaguzi unahitaji kutaja "vigezo" vitatu S1; C1; S2 , ambazo zimetenganishwa na semicolons:

Kwa (S1; C1; S2) (
kanuni-kwa-kurudia;
}

Kigezo S1 - haya ndiyo maagizo ambayo yatafanya imekamilika kabla ya kurudia mara ya kwanza . Hii ni kweli uanzishaji wa kitanzi.

Kigezo C1 -Hii kujieleza kwa mantiki au thamani itakayokuwa itaangaliwa kabla ya kila marudio mzunguko. Ikiwa usemi huu ni kweli, basi marudio yanayofuata yanafanywa. Vinginevyo, mzunguko unaisha. Kwa kweli, hii ni hali ya kuendelea kwa mzunguko. Kumbuka kwamba kwa marudio ya kwanza ukaguzi huu utafanywa baada ya maagizo kutekelezwa S1 .

Kigezo S2 - hii ni maagizo kutekelezwa baada ya kila iteration .

Hii inaweza kuwakilishwa kimkakati katika picha ifuatayo:

Sasa wacha turudi kwa mfano wetu na tuiandike tena kwa kutumia kitanzi:

Hapa maagizo ya S1 ni ufafanuzi na uanzishaji wa kutofautisha i. Hali ya kuendelea na mzunguko ni usemi i<= 4 . В качестве инструкции S2, которая выполняется после каждой итерации, выступает операция инкремента переменной i - увеличение ее значения на 1 . Таким образом, получим повторение записи в консоль значения переменной mew ровно 4 раза. Переменная i в таких циклах называется kaunta .

Wacha tuangalie mfano mwingine wa kutumia kitanzi hiki - kurudia kupitia maadili ya safu.

Var arr = ;

Kwa (i = 0; i console.log(arr[i]);
}

Katika kesi hii, tuliunda kwa nguvu i ya kutofautiana, ambayo ni counter iteration, na katika hali tulitumia mali ya kitu cha safu, ambacho kina idadi ya vipengele vyake.

Vitanzi vimeundwa ili kutekeleza maagizo sawa tena na tena.

Kuna aina 4 za vitanzi katika JavaScript:

  • Kwa kitanzi. Kitanzi hiki kinatumika wakati idadi kamili ya marudio ya maagizo sawa inajulikana.
  • Wakati kitanzi. Imeundwa kutekeleza maagizo sawa mradi tu hali fulani ni kweli.
  • The do...wakati kitanzi. Kitanzi hiki ni sawa na kitanzi cha wakati, lakini hali hiyo haijaangaliwa kabla ya kutekeleza maagizo yaliyorudiwa, lakini baada yao. Kwa njia hii, tofauti na kitanzi cha muda, hata ikiwa hali ni ya uwongo mwanzoni, taarifa zitatekelezwa angalau mara moja.
  • Kwa...katika kitanzi. Inatumika wakati unahitaji kurudia kupitia sifa zote katika kitu au kila kipengele katika safu.

kwa kitanzi

Kwa syntax ya kitanzi:

Kwa (kuanzisha; hali; usemi wa mwisho) ( /* kitanzi mwili */ )

  • uanzishaji ni usemi ambao hutekelezwa mara moja kabla ya kitanzi kutekelezwa; kawaida hutumika kuanzisha counter;
  • sharti ni usemi ambao ukweli wake unakaguliwa kabla ya kila marudio; ikiwa usemi unatathmini kuwa kweli, basi marudio yanafanywa, vinginevyo kitanzi cha kitanzi kinatoka;
  • usemi wa mwisho ni usemi unaotekelezwa mwishoni mwa kila marudio; kawaida hutumiwa kubadilisha counter;
  • mwili wa kitanzi - maagizo ambayo yanahitaji kurudiwa.

Wacha tuangalie mfano wa kitanzi ambacho kitachapisha nambari kutoka 1 hadi 9 hadi koni:

Var i; // Kitanzi kutoka 1 hadi 9, katika hatua za 1 kwa (i = 1; i<= 9; i++) { console.log(i); }

Katika mfano huu:

  • uanzishaji: i = 1 (kukabidhi variable i thamani 1);
  • hali ya kukomesha kitanzi: i<= 9 (значение переменной i не меньше 9);
  • usemi wa kutekelezwa mwishoni mwa kila marudio: i++ (ongeza thamani ya kutofautiana i kwa 1);
  • maagizo ya kufuata: console.log(i) (kuchapisha thamani ya kaunta kwenye koni).

Sehemu za hiari za a kwa kitanzi

Kwa, kizuizi cha uanzishaji ni cha hiari.

Var i = 1; // Kitanzi cha (; i<= 9; i++) { console.log(i); }

Kizuizi cha hali katika kitanzi cha kitanzi pia ni cha hiari. Bila hali, kitanzi kitatekelezwa kwa idadi isiyo na kikomo ya nyakati. Katika kesi hii, ili kuizuia (toka kwenye kitanzi), lazima utumie taarifa ya mapumziko.

Var i; // Kitanzi kwa ajili ya (i = 1; ; i++) ( ikiwa (i > 9) ( // sharti la kukatiza kukatika kwa kitanzi; ) console.log(i);)

Mwisho wa kujieleza pia ni wa hiari. Katika kesi hii, counter ya kitanzi inaweza, kwa mfano, kubadilishwa katika mwili.

Var i; // Kwa kitanzi cha (i = 1; i<= 9 ;) { console.log(i); i++; }

Unaweza kuacha misemo 3 kabisa:

Var i = 1; // Kitanzi cha (; ;) ( ikiwa (i > 9) ( mapumziko; ) console.log(i); i++; )

Unaweza kutumia usemi tupu (;) kama mwili wa kitanzi.

Kwa mfano:

Var arrA =, arrB =; kwa (i = 0; i< arrA.length; arrB[i] = arrA / 2) ; console.log(arrB); //

Mifano ya kutumia kwa

Kutumia kitanzi ili kurudia kupitia vitu vya safu:

Var arr = , // safu i = 0, // counter lenArr = arr.length; // urefu wa safu kwa (i; i< lenArr; i++) { console.log(arr[i]); }

Kuvunja na kuendelea maelekezo

Kwa kuongeza, maelekezo maalum ya kuvunja na kuendelea yanaweza kutumika ndani ya mwili wa loops.

Taarifa ya mapumziko inalenga kusitisha utekelezaji wa kitanzi. Wale. hutoka kwenye kitanzi cha sasa na kuhamisha udhibiti kwa maagizo yanayofuata.

Taarifa ya kuendelea inakatiza mrudisho wa sasa wa kitanzi na kuendelea hadi nyingine.

Mfano ambao tutatoa nambari zisizo za kawaida kutoka 1 hadi 11 hadi kwa koni:

Var i; kwa (i = 1; i <= 11; i++) ( // ikiwa nambari katika kutofautisha ni sawa, basi nenda kwa marudio yanayofuata ikiwa (i %2 === 0) ( endelea; ) // chapisha thamani ya kutofautiana i kwa console console.log(i); ) // 1, 3, 5, 7, 9, 11

Kitanzi na sharti wakati

Kitanzi cha wakati hutekeleza taarifa sawa (mwili wa kitanzi) hadi hali fulani iwe kweli. Ukweli wa hali hiyo huangaliwa kabla ya kila utekelezaji wa mwili wa kitanzi. Ikiwa hali ni ya uwongo kabla ya kurudia mara ya kwanza, basi kitanzi hakijatekelezwa.

// kutangaza kutofautisha a na kuikabidhi thamani 0 var a=0; // huku kitanzi chenye sharti a

Kitanzi na kufanya...wakati postcondition

The do...wakati kitanzi, kama kitanzi cha wakati, hutekeleza kauli zile zile (mwili wa kitanzi) hadi hali fulani iwe kweli. Lakini tofauti na kitanzi cha wakati, katika kufanya ... wakati kitanzi hali inaangaliwa baada ya kila utekelezaji wa mwili wa kitanzi. Hata ikiwa hali hiyo hapo awali ni ya uwongo, mwili wa kitanzi bado utatekelezwa mara moja (kwani hali hiyo inaangaliwa baada ya mwili wa kitanzi kutekelezwa).

// kutangaza kutofautisha a na kuikabidhi thamani 0 var a=0; //fanya... huku kitanzi chenye sharti a

Kama ilivyoonyeshwa hapo juu, kwa...katika kitanzi hutumika kurudia kupitia vipengele vya safu na sifa za kitu. Katika somo hili tutaangalia tu sintaksia ya jumla ya kwa...katika kitanzi, lakini tutaifahamu kwa undani zaidi katika masomo yafuatayo.

Jinsi for...in loop inavyofanya kazi ni kwamba kutofautisha x huchukua majina yote ya mali ya kitu y au fahirisi za safu y . Kwa hivyo, katika kila marudio, mali ya kitu au safu ya safu inapatikana kwako.