⊗jsPmLpFl 165 of 505 menu

Lavorare con i flag in JavaScript

Ora impareremo a lavorare con i flag. Un flag è una variabile speciale che può assumere solo due valori: true e false. Con l'aiuto dei flag è possibile risolvere problemi che verificano l'assenza di qualcosa: ad esempio, si può verificare che in un array non ci sia un elemento con un valore specifico. Iniziamo.

Risolviamo il seguente problema: dato un array di numeri, dobbiamo verificare se contiene un elemento con valore 3 o meno. Se presente, stampiamo '+++', se assente - stampiamo '---'.

Per iniziare, proviamo a stampare '+++'. Per farlo, iteriamo attraverso tutti gli elementi del nostro array e con un if chiederemo - l'elemento corrente è uguale al valore 3? Se è uguale, stampiamo '+++':

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

Ma la nostra soluzione non è ottimale: se nell'array non ci fosse un solo valore 3, ma diversi, allora '+++' verrebbe stampato diverse volte. Modifichiamo il nostro array (mettiamo due elementi con valore 3) e verifichiamolo:

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

Risolviamo il problema: interrompiamo il ciclo con break, se l'elemento è già stato trovato:

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

Ora proviamo a fare in modo che, se nell'array non ci sono affatto elementi con valore 3, venga stampato '---'. Un errore comune sarebbe aggiungere else al nostro if - in questo caso '---' verrebbe stampato per tutti gli elementi che non sono 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // stamperà per l'elemento 3 } else { console.log('---'); // stamperà per gli elementi 1, 2, 4, 5 } }

Quindi, l'idea di aggiungere else è una cattiva idea, non funziona. Per risolvere problemi di questo tipo (problemi abbastanza frequenti) si utilizzano i cosiddetti flag.

Come accennato in precedenza, un flag è una variabile che può assumere due valori: true o false.

Quindi, creiamo una variabile flag con questo significato: se è uguale a true, allora l'array contiene l'elemento 3, mentre se è false, allora tale elemento non è presente.

Inizialmente impostiamo la variabile flag a false - cioè assumeremo che l'elemento 3 non sia presente nell'array:

let arr = [1, 2, 3, 4, 5]; let flag = false; // assumiamo che l'elemento 3 non sia nell'array

Poi eseguiamo un ciclo con un if come facevamo prima. Se il ciclo rileva che nell'array c'è un elemento 3 - allora imposteremo la variabile flag a true e usciremo dal ciclo con break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // assumiamo che l'elemento 3 non sia nell'array for (let elem of arr) { if (elem == 3) { flag = true; // l'elemento c'è - ridefiniamo la variabile flag break; // usciamo dal ciclo } }

La risposta alla domanda se nell'array c'è 3 o meno, possiamo darla solo dopo il ciclo. E questa risposta la abbiamo già: dopo il ciclo la variabile flag potrebbe essere rimasta false o potrebbe aver cambiato il suo valore in true, se il ciclo ha rilevato 3 nell'array:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // qui la variabile flag è uguale a true o false

Ora, dopo il ciclo, possiamo fare un if che controllerà la variabile flag e stamperà a schermo '+++' o '---':

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

Dato un array:

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

Verifica se in questo array c'è un elemento 'c'. Se c'è - stampa '+++', se non c'è - stampa '---'.

Scrivi del codice che verifichi se un numero è primo o meno. Un numero primo è divisibile solo per uno e per se stesso, e non è divisibile per altri numeri.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta