Tatizo la Hiari ya Mabano Yenye Maumbo katika if-else
Licha ya ukweli kwamba JavaScript inaruhusu vifupisho vilivyoonyeshwa hapo juu vyenye mabano yenye maumbo, mimi kwa ujumla sioipendekezi kufanya hivyo, kwani hii ni chanzo cha makosa magumu kugundulika. Wacha kwa mfona uwe na msimbo ufuatao:
let num = 3;
if (num > 0)
console.log(num);
Wacha sasa tukaamua katika tukio hilo, ikiwa
sharti litatimizwa, kuonyesha ujumbe wa pili pia
na maandishi '+++':
let num = 3;
if (num > 0)
console.log(num);
console.log('+++');
Hata hivyo, bila mabano yenye maumbo ndani ya sharti kipo ujumbe wa kwanza tu. Yaani mstari wa kwanza utafanya kazi ikiwa sharti ni sahihi, na wa pili - kila wakati.
Kwa kweli msimbo wetu ni sawa na ufuatao:
let num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // mstari huu ulikwenda nje ya sharti
Na sisi tungependa msimbo kama huu:
let num = 3;
if (num > 0) {
console.log(num);
console.log('+++'); // mstari huu uko ndani ya sharti
}
Hii ndiyo sababu inapendekezwa kila wakati kufanya kuweka mabano yenye maumbo, ili usiweke angalau katika makosa ya aina hii.