Lipumattoman lipun JavaScript-silmukassa -virhe
Oletetaan, että meillä on jokin luku:
let num = '12345';
Tarkistetaan, onko tässä luvussa tietty numero. Eräs ohjelmoija on jo kirjoittanut koodin, joka toteuttaa edellä kuvatun:
for (let digit of num) {
if (digit === '3') {
console.log('on');
} else {
console.log('ei');
}
}
Tämä koodi kuitenkin toimii väärin,
tulostaen 'on' tai 'ei'
jokaiselle taulukon elementille.
Meidän tulee kuitenkin saada tulos tulostettua
vain kerran. Tässä tapauksessa yhdistettynä
silmukkaan ongelma ratkaistaan vain lipun avulla:
let hasDigit = false; // lippu
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('on');
} else {
console.log('ei');
}