دستور if تو در تو
میتوان از دستور if تو در تو در Ruby استفاده کرد. یک دستور ساده if در داخل دستور if دیگر.
if (condition) code to execute if (condition) code to execute elsif (condition) if (condition) code to execute else if (condition) code to execute end end end end
اجازه بدهید که نحوه استفاده از دستور if تو در تو را نشان دهیم :
1: print 'Enter your age: ' 2: age = gets.to_i 3: 4: print 'Enter your gender (male/female)' 5: gender = gets 6: 7: if age > 12 8: if age < 20 9: if gender == "male" 10: puts "You are a teenage boy." 11: else 12: puts "You are a teenage girl." 13: end 14: else 15: puts "You are already an adult." 16: end 17: else 18: puts "You are still too young." 19: end
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.
اجازه بدهید که برنامه را کالبد شکافی کنیم. ابتدا برنامه از شما درباره سنتان سؤال میکند (خط 1). در خط 4 درباره جنستان از شما سؤال میکند. سپس به اولین دستور if میرسد (خط 7). در این قسمت اگر سن شما بیشتر از 12 سال باشد برنامه وارد بدنه دستور if میشود در غیر اینصورت وارد بلوک else (خط 17) مربوط به همین دستور if میشود.
حال فرض کنیم که سن شما بیشتر از 12 سال است و شما وارد بدنه اولین if شدهاید. در بدنه اولین if دو دستور if دیگر را مشاهده میکنید. اگر سن کمتر 20 باشد شما وارد بدنه if دوم میشوید و اگر نباشد به قسمت else متناظر با آن میروید (خط 14). دوباره فرض میکنیم که سن شما کمتر از 20 باشد، در اینصورت وارد بدنه if دوم شده و با یک if دیگر مواجه میشوید (خط 9). در اینجا جنسیت شما مورد بررسی قرار میگیرد که اگر برابر “male” باشد، کدهای داخل بدنه سومین if اجرا میشود در غیر اینصورت قسمت else مربوط به این if اجرا میشود (خط 11). پیشنهاد میشود که از if تو در تو در برنامه کمتر استفاده کنید چون خوانایی برنامه را پایین میآورد.