⊗jsPmLpFl 165 of 505 menu

Vėliavų naudojimas JavaScript

Dabar mes išmoksime dirbti su vėliavomis. Vėliava - tai specialus kintamasis, kuris gali įgyti tik dvi reikšmes: true ir false. Naudojant vėliavas galima spręsti uždavinius, tikrinančius ko nors nebuvimą: pavyzdžiui, galima patikrinti, ar masyve nėra elemento su tam tikra reikšme. Pradėkime.

Išspręskime tokį uždavinį: duotas masyvas su skaičiais, reikia patikrinti, ar jame yra elementas su reikšme 3, ar ne. Jei yra - išveskime '+++', jei nėra - išveskime '---'.

Pirmiausia pabandykime išvesti '+++'. Norėdami tai padaryti, pereisime per visus mūsų masyvo elementus ir if sakiniais klaursime - ar dabartinis elementas lygus reikšmei 3. Jei lygus - išveskime '+++':

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); } }

Tačiau mūsų sprendimas nėra labai geras: juk jei masyve bus ne viena reikšmė 3, o kelios, tai '+++' bus išvesta kelis kartus. Pataisykime mūsų masyvą (padarykime du elementus su reikšme 3) ir įsitikinkime tuo:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // išves kelis kartus } }

Ištaisykime problemą: užbaigsime ciklą naudodami break, jei elementas jau rastas:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // užbaigiame ciklą } }

Dabar pabandykime padaryti taip, kad, jei masyve išvis nėra elementų su reikšme 3, būtų išvestas '---'. Dažnas supainiojimas būtų pridėti else prie mūsų if sakinio - tokioje situacijoje '---' bus išvestas visiems elementams, kurie nėra 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // išves ant elemento 3 } else { console.log('---'); // išves ant elementų 1, 2, 4, 5 } }

Taigi, idėja pridėti else - bloga idėja, neveikianti. Tokio tipo uždaviniams spręsti (tokie uždaviniai pasitaiko pakankamai dažnai) ir naudojamos taip vadinamos vėliavos.

Kaip jau minėta anksčiau, vėliava - tai toks kintamasis, kuris gali įgyti dvi reikšmes: true arba false.

Taigi, sukurkime kintamąjį flag su tokia reikšme: jei jis lygus true, tai masyve yra elementas 3, o jei false, tokio elemento nėra.

Iš pradžių nustatykime kintamąjį flag į reikšmę false - tai yra, laikysime, kad elemento 3 masyve nėra:

let arr = [1, 2, 3, 4, 5]; let flag = false; // manome, kad elemento 3 masyve nėra

Tada paleiskime ciklą su if sakiniais taip, kaip mes darėme anksčiau. Jei ciklas aptiks, kad masyve yra elementas 3 - tai nustatysime kintamąjį flag į reikšmę true ir išeisime iš ciklo naudodami break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // manome, kad elemento 3 masyve nėra for (let elem of arr) { if (elem == 3) { flag = true; // elementas yra - perapibrėžsime kintamąjį flag break; // išeisime iš ciklo } }

Atsakymą į klausimą, ar masyve yra 3, ar ne, galime duoti tik po ciklo. Ir šį atsakymą mes jau turime: po ciklo kintamasis flag galėjo likti false arba galėjo pakeisti savo reikšmę į true, jei ciklas aptiko masyve 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // čia kintamasis flag lygus arba true, arba false

Dabar po ciklo mes galime padaryti if sakinį, kuris pažiūrės į kintamąjį flag ir išves į ekraną '+++' arba '---':

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } if (flag === true) { console.log('+++'); } else { console.log('---'); }

Duotas masyvas:

let arr = ['a', 'b', 'c', 'd', 'e'];

Patikrinkite, ar šiame masyve yra elementas 'c'. Jei yra - išveskite '+++', o jei nėra - išveskite '---'.

Parašykite kodą, kuris tikrins skaičių, ar jis yra pirminis, ar ne. Pirminis skaičius dalijasi tik iš vieneto ir iš savęs, ir nesidalija iš kitų skaičių.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti