JavaScript da sikl flagisiz xatolik
Faraz qilaylik, bizda biror son bor:
let num = '12345';
Keling, shu sondagi berilgan raqam borligini tekshiramiz. Bir dasturchi buni amalga oshiradigan kodni yozgan:
for (let digit of num) {
if (digit === '3') {
console.log('bor');
} else {
console.log('yo\'q');
}
}
Biroq, bu kod noto'g'ri ishlaydi,
har bir massiv elementi uchun 'bor'
yoki 'yo\'q' ni chiqaradi.
Bizga esa natifa faqat bir marta
chiqarilishi kerak. Bunday holda,
sikl bilan birgalikda vazifa faqat
flag orqali hal qilinadi:
let hasDigit = false; // flag
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('bor');
} else {
console.log('yo\'q');
}