دستور if

می‌توان با استفاده از دستور if و یک شرط خاص که باعث ایجاد یک کد می‌شود یک منطق به برنامه خود اضافه کنید. دستور if ساده‌ترین دستور شرطی است که برنامه می‌گوید اگر شرطی برقرار است کد معینی را انجام بده. ساختار دستور if به صورت زیر است :

if condition
   code to execute
end

قبل از اجرای دستور if ابتدا شرط بررسی می‌شود. اگر شرط برقرار باشد یعنی درست باشد سپس کد اجرا می‌شود. شرط یک عبارت مقایسه‌ای است. می‌توان از عملگرهای مقایسه‌ای برای تست درست یا اشتباه بودن شرط استفاده کرد. اجازه بدهید که نگاهی به نحوه استفاده از دستور if در داخل برنامه بیندازیم. برنامه زیر پیغام Hello World را اگر مقدار number کمتر از 10 و Goodbye World را اگر مقدار number از 10 بزرگ‌تر باشد در صفحه نمایش می‌دهد.

 1: #Declare a variable and set it a value less than 10
 2: number = 5
 3: 
 4: #If the value of number is less than 10   
 5: if number < 10
 6:   puts 'Hello World.'
 7: end
 8: 
 9: #Change the value of a number to a value which is greater than 10 
10: number = 15
11: 
12: #If the value of number is greater than 10         
13: if number > 10
14:   puts 'Goodbye World.'
15: end
Hello World.
Goodbye World.

در خط 2 یک متغیر با نام number تعریف و مقدار 5 به آن اختصاص داده شده است. وقتی به اولین دستور if در خط 5 می‌رسیم برنامه تشخیص می‌دهد که مقدار number از 10 کمتر است یعنی 5 کوچک‌تر از 10 است.

منطقی است که نتیجه مقایسه درست می‌باشد، بنابراین دستور if دستور را اجرا می‌کند (خط 6) و پیغام Hello World چاپ می‌شود. حال مقدار number را به 15 تغییر می‌دهیم (خط 10). وقتی به دومین دستور if در خط 13 می‌رسیم برنامه مقدار number را با 10 مقایسه می‌کند و چون مقدار number یعنی 15 از 10 بزرگ‌تر است برنامه پیغام Goodbye World را چاپ می‌کند (خط 14). به این نکته توجه کنید که دستور if را می‌توان در یک خط نوشت :

if number > 10; puts "Goodbye World." end

همانطور که در کد بالا مشاهده می کنید، باید بعد از شرط یک علامت سمیکالن قرار دهید. شما می‌توانید چندین دستور را در داخل دستور if بنویسید. کافیست همه آنها را قبل از کلمه end بنویسید. نحوه تعریف چند دستور در داخل بدنه if به صورت زیر است :

if condition
    statement1
    statement2
    .
    .
    .
    statementN
end

این هم یک مثال ساده :

x = 15;                                     
                                                    
if x > 10
   puts "x is greater than 10."
   puts "This is still part of the if statement."
end

در مثال بالا اگر مقدار x از 10 بزرگ‌تر باشد دو پیغام چاپ می‌شود. مثالی دیگر در مورد دستور if :

 1: print "Enter a number: "
 2: firstNumber = gets.to_i
 3: 
 4: print "Enter another number: "
 5: secondNumber = gets.to_i
 6: 
 7: if firstNumber == secondNumber
 8:     puts "#{firstNumber} == #{secondNumber}"
 9: end
10: 
11: if firstNumber != secondNumber
12:     puts "#{firstNumber} != #{secondNumber}"
13: end
14: 
15: if firstNumber < secondNumber
16:     puts "#{firstNumber} < #{secondNumber}"
17: end
18: 
19: if firstNumber > secondNumber
20:     puts "#{firstNumber} > #{secondNumber}"
21: end
22: 
23: if firstNumber <= secondNumber
24:     puts "#{firstNumber} <= #{secondNumber}"
25: end
26: 
27: if firstNumber >= secondNumber
28:     puts "#{firstNumber} >= #{secondNumber}"
29: end
Enter a number: 2
Enter another number: 5
2 != 5
2 < 5
2 <= 5
Enter a number: 10
Enter another number: 3
10 != 3
10 > 3
10 >= 3
Enter a number: 5
Enter another number: 5
5 == 5
5 <= 5
5 >= 5

ما از عملگرهای مقایسه‌ای در دستور if استفاده کرده‌ایم. ابتدا دو عدد که قرار است با هم مقایسه شوند را به عنوان ورودی از کاربر می‌گیریم. اعداد با هم مقایسه می‌شوند و اگر شرط درست بود پیغامی چاپ می‌شود. به این نکته توجه داشته باشید که شرطها مقادیر بولی هستند، یعنی دارای دو مقدار true یا flase می باشند.