JavaScript-də funksiyada bayraq olmaması səhvi
Tutaq ki, biz bir funksiya etmək istəyirik, parametr olaraq rəqəm və ədəd qəbul edəcək və verilmiş rəqəmin ədəd daxilində olub-olmadığını yoxlayacaq:
function func(needle, num) {
// burada kod olacaq
}
Biz funksiyamızdan belə istifadə edəcəyik:
console.log(func('3', '12345')); // true çap edəcək
Müəyyən bir proqramçı bu məsələnin həllini yazmışdır:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Lakin bu həll düzgün işləmir.
Məsələ ondadır ki, dövrdə elə bir şərt yazılıb ki,
orada ilk iterasiyada
ya bir return icra olunacaq,
ya da digəri, beləliklə də
dövrədən və funksiyadan çıxış həyata keçiriləcək.
Kodumuzu düzgün şəkildə yenidən yazaq, funksiyalarda gizli bayraqlardan istifadə edərək:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}