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