دستور if…elsif…else
اگر بخواهید چند شرط را بررسی کنید چکار میکنید؟ میتوانید از چندین دستور if استفاده کنید و بهتر است که این دستورات if را به صورت زیر بنویسید :
if (condition) code to execute else if (condition) code to execute else if (condition) code to execute else code to execute end end end
خواندن کد بالا سخت است. بهتر است دستورات را به صورت تو رفتگی در داخل بلوک else بنویسید. میتوانید کد بالا را سادهتر کنید :
if (condition1) code to execute1 elsif (condition2) code to execute2 elsif (condition n) code to execute3 else code to execute4 end
حال که نحوه استفاده از دستور if else را یاد گرفتید باید بدانید که مانند else ،elif نیز به دستور if وابسته است. دستور elif وقتی اجرا میشود که اولین دستور if اشتباه باشد حال اگر elif اشتباه باشد دستور elif بعدی اجرا میشود. و اگر آن نیز اجرا نشود در نهایت دستور else اجرا میشود. برنامه زیر نحوه استفاده از دستورelif را نشان میدهد :
1: puts 'What\'s your favorite color?' 2: puts '[1] Black' 3: puts '[2] White' 4: puts '[3] Blue' 5: puts '[4] Red' 6: puts '[5] Yellown' 7: 8: print 'Enter your choice: ' 9: choice = gets.to_i 10: 11: if choice == 1 12: puts 'You might like my black t-shirt.' 13: elsif choice == 2 14: puts 'You might be a clean and tidy person.' 15: elsif choice == 3 16: puts 'You might be sad today.' 17: elsif choice == 4 18: puts 'You might be inlove right now.' 19: elsif choice == 5 20: puts 'Lemon might be your favorite fruit.' 21: else 22: puts 'Sorry, your favorite color is not in the choices above.' 23: end
What's your favorite color? [1] Black [2] White [3] Blue [4] Red [5] Yellow Enter your choice: 1 You might like my black t-shirt. What's your favorite color? [1] Black [2] White [3] Blue [4] Red [5] Yellow Enter your choice: 999 Sorry, your favorite color is not in the choices above.
خروجی برنامه بالا به متغیر choice وابسته است. بسته به اینکه شما چه چیزی انتخاب میکنید پیغامهای مختلفی چاپ میشود. اگر عددی که شما تایپ میکنید در داخل حالتهای انتخاب نباشد کد مربوط به بلوک else اجرا میشود.