Chyba chýbajúcej príznakovej premennej v cykle JavaScript
Majme nejaké číslo:
let num = '12345';
Skontrolujme, či sa v tomto čísle nachádza zadaná číslica. Istý programátor už napísal kód, ktorý implementuje opísané:
for (let digit of num) {
if (digit === '3') {
console.log('je');
} else {
console.log('nie');
}
}
Tento kód však funguje nesprávne,
vypisuje 'je' alebo 'nie'
pre každý prvok poľa.
My potrebujeme, aby sa výsledok vypísal
iba raz. V tomto prípade sa v kombinácii
s cyklom problém rieši len pomocou príznakovej premennej:
let hasDigit = false; // príznaková premenná (flag)
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('je');
} else {
console.log('nie');
}