Гнездење ако друго изјаве помажу у организацији и изоловању услова како би се избјегло тестирање истог стања два пута или да би се смањио број пута колико је потребно обављати различите тестове.
Коришћењем ако Изјаве и са упоређивачима и са логичким операторима, можемо поставити код који ће се изводити ако се испуни одређена комбинација услова. Не желимо увек да тестирамо целокупно стање да бисмо покренули један низ изјава да ли је цео тест тачан, а други ако је лажан. Можда ћемо желети да изаберемо између неколико различитих изјава, у зависности од тога која је комбинација услови тачно је.
Претпоставимо, на пример, да имамо три вредности за упоређивање и желимо да поставимо различите резултате у зависности од тога које су вредности једнаке. Следећи пример показује како можемо да се гнездемо ако изјаве за тестирање (подебљано испод)
вар одговор;
ако је (а == б) {
ако је (а == ц) {
ансвер = "сви су једнаки";
} елсе {
ансвер = "а и б су једнаки";
}
} елсе {
ако је (а == ц) {
ансвер = "а и ц су једнаки";
} елсе {
ако је (б == ц) {
ансвер = "б и ц су једнаки";
} елсе {
ансвер = "сви су различити";
}
}
}
Начин на који логика овде функционише је:
- Ако је први услов тачан (
ако (а == б)
), затим програм проверава да ли има угнијежђено ако стање (ако (а == ц)
). Ако је први услов лажан, програм се претвара у друго стање. - Ако угнијежђено ако тачно је, изјава се извршава, тј. "сви су једнаки".
- Ако угнијежђено ако је лажно, онда је друго изјава је извршена, тј. "а и б су једнаке".
Ево неколико ствари које ћете приметити како се ово кодира:
- Прво смо креирали променљиву одговор да задржимо резултат пре него што смо започели ако изјава, чинећи променљиву глобално. Без тога би нам требало да укључимо променљиву на предњој страни свих изјава о додјели, јер би то била локална варијабла.
- Друго, сваки смо угнијежђен удубили ако изјава. То нам омогућава да лакше пратимо колико угнијежђених нивоа изјава има. Такође постаје јасније да смо затворили прави број блокова кода да бисмо довршили све ако изјаве које смо отворили. Можда ћете открити да је лакше сваки пут ставити наруквице ако Изјава пре него што почнете да пишете код који припада унутар тог блока.
Можемо мало да поједноставимо један одељак овог кода да не бисмо морали да се гнезде ако изјавама подједнако. Где целина блок састоји се од једног ако Изјава, можемо изоставити заграде око тог блока и преместити ако условити на истој линији као и друго, користећи услов "елсе иф". На пример:
вар одговор;
ако је (а == б) {
ако је (а == ц) {
ансвер = "сви су једнаки";
} елсе {
ансвер = "а и б су једнаки";
}
} ако је (а == ц) {
ансвер = "а и ц су једнаки";
} елсе иф (б == ц) {
ансвер = "б и ц су једнаки";
} елсе {
ансвер = "сви су различити";
}
Угнездио ако онда изјаве су уобичајене у свим програмским језицима, не само ЈаваСцрипт. Почетни програмери често користе вишеструко ако онда или ако друго изјаве уместо да их гнезде. Иако ће ова врста кода радити, брзо ће постати вишезначна и дуплирати ће услове. Уметање условне изјаве ствара више јасноће око логике програма и резултира сажетим кодом који се може покренути или саставити брже.