دستور if تو در تو

می‌توان از دستور if تو در تو در جاوااسکریپت استفاده کرد. یک دستور ساده if در داخل دستور if دیگر.

if (condition)
{
    code to execute;

    if (condition)
    {
         code to execute;   
    }
    else if (condition)
    {
        if (condition)
        {
           code to execute;
        }
    }
}
else
{
    if (condition)
    {
       code to execute;  
    }
}

اجازه بدهید که نحوه استفاده از دستور if تو در تو را نشان دهیم :

 1: var age;
 2: var gender;
 3: 
 4: age = parseInt(prompt("Enter your age: "));
 5: 
 6: gender = prompt("Enter your gender (male/female): ");
 7: 
 8: if (age > 12)
 9: {
10:     if (age < 20)
11:     {
12:         if (gender == "male")
13:         {
14:             console.log("You are a teenage boy.");
15:         }
16:         else
17:         {
18:             console.log("You are a teenage girl.");
19:         }
20:     }
21:     else
22:     {
23:         console.log("You are already an adult.");
24:     }
25: }
26: else
27: {
28:     console.log("You are still too young.");
29: }
Enter your age: 18
Enter your gender: male
You are a teenage boy.
Enter your age: 12
Enter your gender: female
You are still too young.

اجازه بدهید که برنامه را کالبد شکافی کنیم. ابتدا یک پنجره باز شده و برنامه از شما درباره سنتان (خط 4) و سپس پنرجه دوم باز شده (خط 5) و درباره جنستان از شما سؤال می‌کند. سپس به اولین دستور if می‌رسد (خط 8). در این قسمت اگر سن شما بیشتر از 12 سال باشد برنامه وارد بدنه دستور if می‌شود در غیر اینصورت وارد بلوک else (خط 26) مربوط به همین دستور if می‌شود.
حال فرض کنیم که سن شما بیشتر از 12 سال است و شما وارد بدنه اولین if شده‌اید. در بدنه اولین if دو دستور if دیگر را مشاهده می‌کنید. اگر سن کمتر 20 باشد شما وارد بدنه if دوم می‌شوید و اگر نباشد به قسمت else متناظر با آن می‌روید (خط 21). دوباره فرض می‌کنیم که سن شما کمتر از 20 باشد، در اینصورت وارد بدنه if دوم شده و با یک if دیگر مواجه می‌شوید (خط 12). در اینجا جنسیت شما مورد بررسی قرار می‌گیرد که اگر برابر “male” باشد، کدهای داخل بدنه سومین if اجرا می‌شود در غیر اینصورت قسمت else مربوط به این if اجرا می‌شود (خط 16). پیشنهاد می‌شود که از if تو در تو در برنامه کمتر استفاده کنید چون خوانایی برنامه را پایین می‌آورد.