Home »
Ruby Tutorial
Conditional statements in Ruby
By IncludeHelp Last updated : November 16, 2024
Conditional statements are also known by the name of conditional processing or conditional expressions. They are used to perform a certain set of instructions if a specified condition is met. The conditions are generally of Boolean type and return either true or false as the result. Conditionals are formed using if or case with some comparison operators. A conditional assists data about where to move next. In Ruby, 0 is considered as true whereas in other programming languages it is considered false.
Following are the basic type of conditional statements which are supported by Ruby:
- If statement
- If else statement
- short if statement
- If else if statement
- Unless
- Case statement
1. Ruby if statement
It is the most basic type of branching statement you get to know during programing. In the simpler words, it means if you find this true, do something, and otherwise do something else. They are quite easy to write.
Syntax
if (condition)
#statements
end
Example
puts "Enter your age"
age = gets.chomp
if age.to_i >= 18
puts "You are allowed to vote."
end
Output
First run:
Enter your age
23
You are allowed to vote.
Second run:
Enter your age
12
2. Ruby if else statement
if else statement is used to indicate what should happen next if the condition fails to be satisfied. It comes with an additional 'else' with it.
Syntax
if (condition)
#instructions
else
#instructions
end
In the above, if..end example we can observe that nothing is showing to the user as the message if the user fails to be older than 18. Let us modify that code and informs the user by using else keyword.
Example
puts "Enter your age"
age = gets.chomp
if age.to_i >= 18
puts "You are allowed to vote."
else
puts "You are younger than 18 years."
end
Output
First run:
Enter your age
23
You are allowed to vote.
Second run:
Enter your age
12
You are younger than 18 years.
3. Ruby Short-if statement
Its functioning is very similar to if...else statement. It is a ternary operator and used for computing result just in one line which saves space and eventually reduces the line of code. It is recommended to be used in small tasks.
Syntax
result = (condition) ? (expression-if-true) : (expression-if-false)
Example
puts "Enter marks:"
marks = gets.chomp.to_i
result = (marks>45)?'pass':'fail'
puts "#{result}"
Output
First run:
Enter marks:
67
pass
Second run:
Enter marks:
12
fail
In the above example, you have observed that we can compute the result in a single line and we are storing the result in a variable. It is also known as ?: operator.
4. Ruby if else if statement
The if-else if statement provides great help when you have more than two conditions. If the if condition is evaluated as false then the pointer will jump to elsif condition and so on. Remember that, in syntax, it is elsif (an else without 'e').
Syntax
if expression
#code block.
elsif expression2
#code block.
elsif expression3
#code block.
else
#code block
end
Example
puts "Enter fruit:"
fruit = gets.chomp
if fruit=="banana"
puts "Outstanding Choice!"
elsif fruit=="Apple"
puts "An Apple a day, keeps the doctor away!"
elsif fruit=="Grapes"
puts "Good in taste"
else
puts "I can't get you"
end
Output
First run:
Enter fruit:
Grapes
Good in taste
Second run:
Enter fruit:
Apple
An Apple a day, keeps the doctor away!
5. Ruby unless
The unless statement is a converse of if statement. If statement is evaluated when the condition turns out to be true but in the case of unless statement, the code block it contains will only be executed when the condition results to be false.
Syntax
unless condition
#code block
end
Example 1
flag = false
unless flag
puts "flag is false"
end
Output
flag is false
Example 2
flag = true
unless flag
puts "flag is false"
end
Output
Note: No output will be there because now flag is 'true'.
6. Ruby case statement
case statement can be interchangeably used with if..elsif..end statement. We use a keyword when for implementing case conditionals. Case statement makes our code more readable.
Syntax
case (variable name)
when (condition)
#statements
when (condition)
#statements
else
#statements
end
Example
puts "Enter fruit:"
fruit = gets.chomp
case fruit
when "Banana"
puts "Outstanding Choice!"
when "Apple"
puts "An Apple a day, keeps the doctor away!"
when "Grapes"
puts "Good in taste"
else
puts "I can't get you"
end
Output
First run:
Enter fruit:
Banana
Outstanding Choice!
Second run:
Enter fruit:
Apple
An Apple a day, keeps the doctor away!
Observe that we have implemented the same logic using case statement as we have done in if..elsif..end statement.