menu

Arbeid med flagg i JavaScript

Nå skal vi lære å arbeide med flagg. Et flagg er en spesiell variabel som bare kan ha to verdier: true og false. Med flagg kan man løse oppgaver som kontrollerer fraværet av noe: for eksempel kan man sjekke at det i en array ikke er noe element med en bestemt verdi. La oss komme i gang.

La oss løse følgende oppgave: gitt en array med tall, sjekk om den inneholder et element med verdien 3 eller ikke. Hvis den gjør det - skriv ut '+++', hvis ikke - skriv ut '---'.

La oss først prøve å skrive ut '+++'. For å gjøre dette, la oss gå gjennom alle elementene i arrayen vår og med en if spørre - er det nåværende elementet lik verdien 3. Hvis det er likt - skriv ut '+++':

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

Men løsningen vår er ikke veldig bra: for hvis det i arrayen ikke er én verdi 3, men flere, så vil '+++' skrives ut flere ganger. La oss endre arrayen vår (la oss lage to elementer med verdien 3) og overbevise oss om dette:

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

La oss rette opp problemet: avslutt løkken med break hvis elementet allerede er funnet:

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

La oss nå prøve å gjøre det slik at, hvis det i arrayen overhodet ikke er noen elementer med verdien 3, skal det skrives ut '---'. En vanlig misforståelse er å legge til else til vår if - i så fall vil '---' skrives ut for alle elementer som ikke er 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // vil skrive ut på element 3 } else { console.log('---'); // vil skrive ut på elementene 1, 2, 4, 5 } }

Så, ideen om å legge til else er en dårlig ide, den fungerer ikke. For å løse oppgaver av denne typen (slike oppgaver forekommer ganske ofte) bruker man såkalte flagg.

Som nevnt ovenfor, er et flagg en slik variabel som kan ha to verdier: true eller false.

Så, la oss lage en variabel flag med denne betydningen: hvis den er lik true, da er det et element 3 i arrayen, og hvis false, da er det ikke et slikt element.

Innledningsvis setter vi variabelen flag til verdien false - det vil si at vi antar at elementet 3 ikke er i arrayen:

let arr = [1, 2, 3, 4, 5]; let flag = false; // antar at elementet 3 ikke er i arrayen

Deretter starter vi en løkke med en if slik som vi gjorde det tidligere. Hvis løkken oppdager at det i arrayen er et element 3 - så setter vi variabelen flag til verdien true og avslutter løkken med break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // antar at elementet 3 ikke er i arrayen for (let elem of arr) { if (elem == 3) { flag = true; // elementet finnes - omdefinerer variabelen flag break; // avslutter løkken } }

Svaret på spørsmålet, om det i arrayen er 3 eller ikke, kan vi bare gi etter løkken. Og dette svaret har vi allerede: etter løkken kunne variabelen flag forbli false eller kunne endre sin verdi til true, hvis løkken oppdaget 3 i arrayen:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // her er variabelen flag lik enten true eller false

Nå kan vi etter løkken lage en if, som ser på variabelen flag og skriver ut på skjermen '+++' eller '---':

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

Gitt en array:

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

Sjekk om det i denne arrayen er et element 'c'. Hvis det er det - skriv ut '+++', og hvis ikke - skriv ut '---'.

Skriv kode som skal sjekke om et tall er primtall eller ikke. Et primtall er bare delbart på en og på seg selv, og er ikke delelig på andre tall.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis