Our daily life contains a set of conditionals whose job is to define us as individuals, these conditionals are introduced to us from the very first day:
- Basic
expressionif
if user.status == "online"
puts "hello world"
endRuby syntax provides the necessary elements to translate any conditional programming sequence into manageable and easy to read lines of code.
IF / ELSIF / ELSE STATEMENT
The
if expression acts as a question and the outcome is determined by the answer to that question, with the help of the elsif and else statements, the possibilities are endless:if user.mood == "happy"
puts "time to study"
elsif user.mood == "sad"
puts "time to play"
else
puts "time to code"
endThe
if statement evaluates anything we put in front of him, if the result returns true the condition is accepted and the piece of code inside gets executed, if the result returns false or nil(null) then we continue with the next condition, in this case elsif(else if) and the same process applies, if the result of elsif is true then it should output the message "time to play", and finally if no condition is true, the else statement is executed.IF AS A MODIFIER
As with the example above, the difference here is that first we need to write the "answer" or the code to be executed, then we pass the
if statement followed by the "question" or condition, which it's executed if the result is true:puts "it's true!" if 1 > 0
# returns "it's true"alarm.sound = off if current_day = 'saturday' || current_day = 'sunday'UNLESS STATEMENT
Unlike the
if statement who checks for a true value, the unless statement does the opposite and checks for false or nil:unless cellphone.battery.percentage > 14
cellphone.start_charge
endWe can combine the
unless expression only with the else statement:unless job.isDone?
puts "go back to work"
else
puts "good job!"
end
job.isDone = true
# returns "good job!"UNLESS AS A MODIFIER
Just as his relative
if, unless can be used as a modifier serving the same purpose but only executing itself when the result is false or nil:- Examples:
puts "it's not right!" unless 4 > 3
# 4 > 3 is true so code doesn't executealarm.sound = on unless current_time < "7:00am"CASE / WHEN / ELSE STATEMENT
The
case statement is another Ruby conditional that can be used as an alternative to if / unless, it's most frequently used to structure and create efficient code when there is a wide number of possible outcomes:case fuel_level
when 71...100
puts "Fuel Level: High"
when 41...70
puts "Fuel Level: Medium"
when 21...40
puts "Fuel Level: Low"
else
puts "Fuel Level: Very Low"
end
fuel_level: 12
# returns "Fuel Level: Very Low"case is the expression to be evaluated, the when expression contains each one of the conditions, if a condition returns true, the code inside is executed and concludes with the end statement, finally the else expression acts as the default condition to be executed if none of the case conditions return true.Links
- Ruby Official Website https://www.ruby-lang.org/en/
- Ruby Documentation https://www.ruby-lang.org/en/documentation/
- Ruby Control Expressions https://docs.ruby-lang.org/en/2.7.0/syntax/control_expressions_rdoc.html
If you made it this far i hope this article helped you in one way or another, thanks for reading!
