Lipu puudumise viga JavaScripti tsüklis
Oletame, et meil on mingi number:
let num = '12345';
Kontrollime, kas selles numbris on antud number. Mingi programmeerija on juba kirjutanud koodi, mis realiseerib kirjeldatut:
for (let digit of num) {
if (digit === '3') {
console.log('on');
} else {
console.log('ei ole');
}
}
See kood aga töötab valesti,
väljastades 'on' või 'ei ole'
iga massiivi elemendi kohta.
Meil on aga vaja, et tulemus väljastataks
ainult üks kord. Sel juhul lahendatakse ülesanne
tsükliga koos ainult lipu abil:
let hasDigit = false; // lipp
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('on');
} else {
console.log('ei ole');
}