menu

Lucrul cu flag-uri în JavaScript

Acum vom învăța să lucrăm cu flag-uri. Un flag este o variabilă specială care poate lua doar două valori: true și false. Cu ajutorul flag-urilor se pot rezolva sarcini care verifică absența a ceva: de exemplu, se poate verifica dacă într-un array nu există un element cu o anumită valoare. Să începem.

Să rezolvăm următoarea sarcină: este dat un array cu numere, trebuie să verificăm dacă există în el un element cu valoarea 3 sau nu. Dacă există - vom afișa '+++', dacă nu - vom afișa '---'.

Pentru început să încercăm să afișăm '+++'. Pentru aceasta vom parcurge toate elementele array-ului nostru și cu un if vom întreba - este egal elementul curent cu valoarea 3. Dacă este egal - vom afișa '+++':

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

Dar soluția noastră nu este foarte bună: dacă în array vor fi nu o singură valoare 3, ci mai multe, atunci '+++' se va afișa de mai multe ori. Să corectăm array-ul nostru (să facem două elemente cu valoarea 3) și să ne convingem de aceasta:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // va afișa de mai multe ori } }

Să corectăm problema: vom încheia ciclul cu ajutorul break, dacă elementul a fost deja găsit:

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

Să încercăm acum să facem astfel încât, dacă în array nu există deloc elemente cu valoarea 3, să se afișeze '---'. O concepție greșită frecventă este să adăugăm else la if-ul nostru - în acest caz '---' se va afișa pentru toate elementele care nu sunt 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // va afișa pe elementul 3 } else { console.log('---'); // va afișa pe elementele 1, 2, 4, 5 } }

Așadar, ideea de a adăuga else - este o idee proastă, nefuncțională. Pentru rezolvarea sarcinilor de acest tip (astfel de sarcini se întâlnesc destul de des) se folosesc așa-numitele flag-uri.

Cum am menționat deja mai sus, un flag este o variabilă care poate lua două valori: true sau false.

Așadar, să facem variabila flag cu următoarea semnificație: dacă este egală cu true, atunci în array există elementul 3, iar dacă false, atunci un astfel de element nu există.

Inițial vom seta variabila flag la valoarea false - adică vom considera, că elementul 3 nu se află în array:

let arr = [1, 2, 3, 4, 5]; let flag = false; // considerăm că elementul 3 nu se află în array

Apoi vom porni ciclul cu if așa cum am făcut anterior. Dacă ciclul va detecta că în array există elementul 3 - atunci vom seta variabila flag la valoarea true și vom ieși din ciclu cu ajutorul break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // considerăm că elementul 3 nu este în array for (let elem of arr) { if (elem == 3) { flag = true; // elementul există - redefinim variabila flag break; // ieșim din ciclu } }

Răspunsul la întrebarea, dacă în array există 3 sau nu, îl putem da doar după ciclu. Și acest răspuns îl avem deja: după ciclu variabila flag poate să fi rămas false sau poate să-și fi schimbat valoarea în true, dacă ciclul a detectat în array 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // aici variabila flag este fie true, fie false

Acum după ciclu putem face un if, care va privi variabila flag și va afișa pe ecran '+++' sau '---':

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('---'); }

Este dat un array:

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

Verificați dacă în acest array există elementul 'c'. Dacă există - afișați '+++', iar dacă nu - afișați '---'.

Scrieți un cod care va verifica un număr dacă este prim sau nu. Un număr prim se împarte doar la unu și la el însuși, și nu se împarte la alte numere.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge