دستور 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: fun main(args: Array<String>)
  2: {
  3:     val age = 21
  4: 
  5:     if (age > 12)
  6:     {
  7:         if (age < 20)
  8:         {
  9:             println("You are teenage")
 10:         }
 11:         else
 12:         {
 13:             println("You are already an adult.")
 14:         }
 15:     }
 16:     else
 17:     {
 18:         println("You are still too young.")
 19:     }
 20: }
You are already an adult.

اجازه بدهید که برنامه را کالبد شکافی کنیم. ابتدا در خط 3 یک متغیر به نام age تعریف می‌کنیم و مقدار آن را برابر 21 قرار می‌دهیم. سپس به اولین دستور if می‌رسیم (خط 5). در این قسمت اگر سن شما بیشتر از 12 سال باشد برنامه وارد بدنه دستور if می‌شود در غیر اینصورت وارد بلوک else (خط 18) مربوط به همین دستور if می‌شود.
حال فرض کنیم که ن شما بیشتر از 12 سال است و شما وارد بدنه اولین if شده‌اید. در بدنه اولین if یک دستور if دیگر را مشاهده می‌کنید. اگر سن کمتر 20 باشد دستور You are teenage چاپ می‌شود (خط 9) در غیر اینصورت دستور You are already an adult (خط 13) و چون مقدار متغیر تعریف شده در خط 7 بزرگ‌تر از 20 است پس دستور مربوط به بخش else خط 13 چاپ می‌شود. حال فرض کنید که مقدار متغیر age کمتر از 12 بود، در این صورت دستور بخش else خط 18 یعنی You are still too young چاپ می‌شد. پیشنهاد می‌شود که از if تو در تو در برنامه کمتر استفاده کنید چون خوانایی برنامه را پایین می‌آورد.