JavaScript'te Fonksiyonda Bayrak Eksikliği Hatası
Diyelim ki bir fonksiyon yapmak istiyoruz, bu fonksiyon parametre olarak bir rakam ve bir sayı alacak ve belirtilen rakamın sayı içinde olup olmadığını kontrol edecek:
function func(needle, num) {
// kod buraya gelecek
}
Fonksiyonumuzu şu şekilde kullanacağız:
console.log(func('3', '12345')); // true yazacak
Bir programcı bu görevin çözümünü şu şekilde yazdı:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Ancak bu çözüm doğru çalışmıyor.
Sebebi şu ki, döngü içinde öyle bir koşul yazılmış ki,
ilk yinelemede
ya birinci return,
ya da ikincisi çalışacak, böylece
hem döngüden hem de fonksiyondan çıkılacak.
Kodumuzu, fonksiyonlarda örtük bayrakları kullanarak doğru bir şekilde yeniden yazalım:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}