Erreur d'absence de drapeau dans une boucle JavaScript
Supposons que nous ayons un certain nombre :
let num = '12345';
Vérifions si ce nombre contient un chiffre donné. Un certain programmeur a déjà écrit le code implémentant ce qui est décrit :
for (let digit of num) {
if (digit === '3') {
console.log('présent');
} else {
console.log('absent');
}
}
Ce code, cependant, fonctionne incorrectement,
affichant 'présent' ou 'absent'
pour chaque élément du tableau.
Nous, en revanche, avons besoin que le résultat s'affiche
une seule fois. Dans ce cas, en combinaison
avec la boucle, le problème n'est résolu que par un drapeau :
let hasDigit = false; // drapeau
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('présent');
} else {
console.log('absent');
}