FAQ: Control Flow in Ruby - If, Else, and Elsif

This community-built FAQ covers the “If, Else, and Elsif” exercise from the lesson “Control Flow in Ruby”.

Paths and Courses
This exercise can be found in the following Codecademy content:

FAQs on the exercise If, Else, and Elsif

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply () below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Agree with a comment or answer? Like () to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

#I’d like to run a program to check whether a person can enter a pub or not. How to do this? Is my code enough?

age = 18
if age > 18
puts “You can enter the pub”
elsif if age == 18
puts “Great! You’re finally ready to enter our place! We’d like to greet you with a free pint of beer!”
else
print “You’re not allowed to enter the pub, I’m sorry!”
end

Why am I unable to get my code to identify when (2) negative integers are chosen (versus just (1))… please help.

My multiplication routine

puts “Here is my multiplication routine:”
puts “Pick an integer”
my_value = Integer(gets.chomp)
puts “Pick another integer”
my_value2 = Integer(gets.chomp)

if my_value < 0 || my_value2 < 0
puts “You picked a negative integer…\n”
elsif my_value <= -1 && my_value2 <= -1
puts “You picked both negative integers…\n”
elsif my_value == 0 || my_value2 == 0
puts “You know the product of anything multiplied by zero is ZERO right?!?!\n”
else my_value > 0 && my_value2 > 0
puts “Great we have 2 positive integer(s)…\n”
end

product_value = my_value * my_value2

puts “The product of ‘#{ my_value}’ and ‘#{ my_value2}’ is equal to ‘#{ product_value}’”

I figured it out!
Just for reference for anyone else - the order is just as important (since you’re essentially cascading down from top to bottom (which should be obvious, but just following the tutorial step by step didn’t immediately make that clear for me).

For example:
First) my_value <= -1 && my_value2 <= -1
puts “You picked both negative integers…\n”
Second) my_value < 0 || my_value2 < 0
puts “You picked a negative integer…\n”

print "Number of goals for liverpool "
user_liverpoolgoals = Integer(gets.chomp)
x = user_liverpoolgoals
print "Number of goals for Spurs "
user_spursgoals = Integer(gets.chomp)
y = user_spursgoals

if x > y
print “Liverpool wins the UCL”
elsif
x == y
print “The match proceeds to shootouts after regulation time”
else
x < y
print “Spurs wins it first UCL”
end

Trying for the program to keep on going after a “wrong” number has been provided by the user:

So my expectation is that here, when inserting the “correct” number 10 (after first choosing a number which is too low), the text “Perfect!” would be printed. But instead nothing gets printed. Why is this the case?