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:

javascriptlet num = 3;

if (num > 0)
  console.log(num);

Wacha sasa tukaamua katika tukio hilo, ikiwa sharti litatimizwa, kuonyesha ujumbe wa pili pia na maandishi '+++':

javascriptlet 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:

javascriptlet num = 3;

if (num > 0) {
  console.log(num);
}

console.log('+++'); // mstari huu ulikwenda nje ya sharti

Na sisi tungependa msimbo kama huu:

javascriptlet 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.