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('йўқ');
}