Памылка адсутнасць сцяга ў цыкле JavaScript
Няхай у нас ёсць нейкі лік:
let num = '12345';
Давайце праверым, ці ёсць у гэтым ліку заданая лічба. Неўтаймаваны праграміст ужо напісаў код, які рэалізуе апісанае:
for (let digit of num) {
if (digit === '3') {
console.log('ёсць');
} else {
console.log('няма');
}
}
Гэты код, аднак, працуе няправільна,
выводзячы 'ёсць' ці 'няма'
для кожнага элемента масіва.
Нам жа патрэбна, каб вынік вывеўся
толькі адзін раз. У гэтым выпадку ў спалучэнні
з цыклам задача вырашаецца толькі праз сцяг:
let hasDigit = false; // сцяг
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('ёсць');
} else {
console.log('няма');
}