ข้อผิดพลาดการไม่มีแฟล็กในลูป 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('ไม่มี');
}