Lỗi thiếu cờ trong vòng lặp JavaScript
Giả sử chúng ta có một số nào đó:
let num = '12345';
Hãy kiểm tra xem trong số này có chữ số được chỉ định hay không. Một lập trình viên nào đó đã viết mã thực hiện điều được mô tả:
for (let digit of num) {
if (digit === '3') {
console.log('có');
} else {
console.log('không');
}
}
Tuy nhiên, mã này hoạt động không chính xác,
in ra 'có' hoặc 'không'
cho từng phần tử của mảng.
Trong khi chúng ta cần kết quả được in ra
chỉ một lần. Trong trường hợp này, khi kết hợp
với vòng lặp, bài toán chỉ được giải quyết bằng cờ:
let hasDigit = false; // cờ
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('có');
} else {
console.log('không');
}