Σφάλμα απουσίας σημαίας σε βρόχο 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('δεν υπάρχει');
}