menu

Werken met vlaggen in JavaScript

Nu leren we hoe we met vlaggen werken. Een vlag is een speciale variabele die slechts twee waarden kan aannemen: true en false. Met vlaggen kunnen taken worden opgelost die de afwezigheid van iets controleren: je kunt bijvoorbeeld controleren of er in een array geen element met een bepaalde waarde zit. Laten we beginnen.

Laten we het volgende probleem oplossen: gegeven een array met nummers, controleer of er een element in zit met de waarde 3 of niet. Als die er is - geef dan '+++' uit, als die er niet is - geef dan '---' uit.

Laten we eerst proberen '+++' uit te voeren. Hiervoor doorlopen we alle elementen van onze array en vragen met een if - is het huidige element gelijk aan de waarde 3. Als het gelijk is - voeren we '+++' uit:

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

Maar onze oplossing is niet erg goed: want als er in de array niet één waarde 3 is, maar meerdere, dan wordt '+++' meerdere keren uitgevoerd. Laten we onze array aanpassen (we maken twee elementen met de waarde 3) en daarvan overtuigen:

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

Laten we het probleem oplossen: we beëindigen de lus met break, als het element al is gevonden:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // beëindig de lus } }

Laten we nu proberen te regelen dat, als er helemaal geen elementen in de array zijn met de waarde 3, er '---' wordt uitgevoerd. Een wijdverbreid misverstand is om else toe te voegen aan onze if - in dat geval wordt '---' uitgevoerd voor alle elementen die geen 3 zijn:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // wordt uitgevoerd bij element 3 } else { console.log('---'); // wordt uitgevoerd bij elementen 1, 2, 4, 5 } }

Kortom, het idee om else toe te voegen - is een slecht idee, het werkt niet. Voor het oplossen van dit soort taken (dergelijke taken komen vrij vaak voor) gebruikt men zogenaamde vlaggen.

Zoals hierboven al vermeld, is een vlag een variabele die twee waarden kan aannemen: true of false.

Laten we een variabele flag maken met de volgende betekenis: als deze gelijk is aan true, dan zit er een element 3 in de array, en als false, dan is er geen such element.

Zet de variabele flag aanvankelijk op de waarde false - dat wil zeggen, we nemen aan dat het element 3 niet in de array zit:

let arr = [1, 2, 3, 4, 5]; let flag = false; // we nemen aan dat element 3 niet in de array zit

Vervolgens starten we een lus met een if, zoals we dat eerder deden. Als de lus ontdekt dat er een element 3 in de array zit - dan zetten we de variabele flag op de waarde true en verlaten we de lus met break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // we nemen aan dat element 3 niet in de array zit for (let elem of arr) { if (elem == 3) { flag = true; // element is er - herdefinieer de variabele flag break; // verlaat de lus } }

Het antwoord op de vraag, of er 3 in de array zit of niet, kunnen we alleen na de lus geven. En dat antwoord hebben we al: na de lus kon de variabele flag false blijven of kon zijn waarde veranderen naar true, als de lus 3 in de array heeft ontdekt:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // hier is de variabele flag gelijk aan true of false

Nu kunnen we na de lus een if doen, die naar de variabele flag kijkt en '+++' of '---' op het scherm toont:

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

Gegeven een array:

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

Controleer of er een element 'c' in deze array zit. Als die er is - toon dan '+++', en als die er niet is - toon dan '---'.

Schrijf code die controleert of een nummer een priemgetal is of niet. Een priemgetal is alleen deelbaar door één en door zichzelf, en is niet deelbaar door andere nummers.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren