⊗jsPmLpFl 165 of 505 menu

Lippujen käsittely JavaScriptissä

Nyt opimme käsittelemään lippuja. Lippu on erityinen muuttuja, joka voi saada vain kaksi arvoa: true ja false. Lippuja käyttämällä voidaan ratkaista tehtäviä, jotka tarkistavat jonkin puuttumista: esimerkiksi voidaan tarkistaa, että taulukossa ei ole alkiota tietyllä arvolla. Aloitetaan.

Ratkaistaan seuraava tehtävä: annettu taulukko luvuilla, on tarpeen tarkistaa, onko siinä alkio arvolla 3 vai ei. Jos on, tulostetaan '+++', jos ei - tulostetaan '---'.

Aluksi yritetään tulostaa '+++'. Tätä varten käymme läpi kaikki taulukkomme alkiot ja if-lauseella kysymme - onko nykyinen alkio yhtä suuri kuin arvo 3. Jos on, tulostetaan '+++':

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

Mutta ratkaisumme ei ole kovin hyvä: sillä jos taulukossa on useita arvoja 3, niin '+++' tulostuu useita kertoja. Muutetaan taulukkoamme (tehdään kaksi alkiota arvolla 3) ja varmistutaan tästä:

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

Korjataan ongelma: keskeytetään silmukka break:llä, jos alkio on jo löytynyt:

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

Yritetään nyt tehdä niin, että jos taulukossa ei ole lainkaan alkioita arvolla 3, tulostuisi '---'. Yleinen väärinkäsitys on lisätä else if-lauseeseemme - tässä tapauksessa '---' tulostuu kaikille alkioille, jotka eivät ole 3:

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

Siis, idea lisätä else - huono idea, ei toimi. Tämän tyyppisten tehtävien ratkaisemiseen (tällaisia tehtäviä esiintyy tarpeeksi usein) käytetään niin kutsuttuja lippuja.

Kuten edellä mainittiin, lippu on sellainen muuttuja, joka voi saada kaksi arvoa: true tai false.

Tehdään muuttuja flag seuraavalla arvolla: jos se on yhtä suuri kuin true, niin taulukossa on alkio 3, ja jos false, niin sellaista alkiota ei ole.

Aluksi asetetaan muuttuja flag arvoon false - eli oletetaan, että alkiota 3 ei ole taulukossa:

let arr = [1, 2, 3, 4, 5]; let flag = false; // oletetaan, että alkiota 3 ei ole taulukossa

Sitten käynnistetään silmukka if-lauseella kuten teimme aiemmin. Jos silmukka huomaa, että taulukossa on alkio 3 - niin asetetaan muuttuja flag arvoon true ja poistutaan silmukasta break:llä:

let arr = [1, 2, 3, 4, 5]; let flag = false; // oletetaan, että alkiota 3 ei ole taulukossa for (let elem of arr) { if (elem == 3) { flag = true; // alkio on olemassa - määritellään muuttuja flag uudelleen break; // poistutaan silmukasta } }

Vastauksen kysymykseen, onko taulukossa 3 vai ei, voimme antaa vasta silmukan jälkeen. Ja tämä vastaus meillä on jo: silmukan jälkeen muuttuja flag on voinut pysyä false tai vaihtaa arvonsa true:ksi, jos silmukka havaitsi taulukossa 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // tässä muuttuja flag on joko true tai false

Nyt silmukan jälkeen voimme tehdä if-lauseen, joka katsoo muuttujaan flag ja tulostaa näytölle '+++' tai '---':

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

Annettu taulukko:

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

Tarkista, onko tässä taulukossa alkio 'c'. Jos on - tulosta '+++', ja jos ei - tulosta '---'.

Kirjoita koodi, joka tarkistaa onko luku alkuluku vai ei. Alkuluku on jaollinen vain ykkösellä ja itsellään, eikä ole jaollinen muilla luvuilla.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää