Błąd braku flagi w pętli JavaScript
Załóżmy, że mamy pewną liczbę:
let num = '12345';
Sprawdźmy, czy w tej liczbie znajduje się określona cyfra. Pewien programista napisał już kod realizujący opisane zadanie:
for (let digit of num) {
if (digit === '3') {
console.log('jest');
} else {
console.log('nie ma');
}
}
Ten kod jednak działa niepoprawnie,
wypisując 'jest' lub 'nie ma'
dla każdego elementu ciągu.
My zaś chcemy, aby wynik wyświetlił się
tylko raz. W tym przypadku w połączeniu
z pętlą zadanie rozwiązuje się tylko za pomocą flagi:
let hasDigit = false; // flaga
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('jest');
} else {
console.log('nie ma');
}