📖 Scenario: Imagine you are building a simple program that decides what to do based on the weather. Ruby lets you choose different ways to write these decisions, called control flow styles.
🎯 Goal: You will create a small Ruby program that uses different control flow styles to print messages based on the weather condition.
📋 What You'll Learn
Create a variable called weather with the value "sunny"
Create a variable called temperature with the value 25
Use an if-elsif-else statement to print a message based on weather
Use a case statement to print a message based on temperature
Use a ternary operator to print a short message based on temperature
💡 Why This Matters
🌍 Real World
Control flow helps programs make decisions like choosing what to do based on user input or data, just like deciding what to wear based on the weather.
💼 Career
Understanding different control flow styles in Ruby is important for writing clear and efficient code in web development, automation, and scripting jobs.
Progress0 / 4 steps
1
Set up weather and temperature variables
Create a variable called weather and set it to "sunny". Also create a variable called temperature and set it to 25.
Ruby
Hint
Use = to assign values to variables.
2
Use if-elsif-else to check weather
Use an if-elsif-else statement with the variable weather to print "It's a bright day!" if weather is "sunny", print "Looks like rain." if weather is "rainy", and print "Weather is unusual." otherwise.
Ruby
Hint
Use if, elsif, and else keywords with puts to print messages.
3
Use case statement to check temperature
Use a case statement with the variable temperature to print "It's cold." if temperature is less than 10, print "Nice weather." if temperature is between 10 and 30 (inclusive), and print "It's hot!" otherwise.
Ruby
Hint
Use case with ranges like 0..9 and 10..30 to check temperature.
4
Use ternary operator for temperature check
Use a ternary operator with the variable temperature to print "Warm day" if temperature is greater than 20, otherwise print "Cool day".
Ruby
Hint
Use puts condition ? 'Warm day' : 'Cool day' to print based on temperature.
Practice
(1/5)
1. Why does Ruby have multiple control flow styles like if, case, and loops?
easy
A. To let programmers choose the best style for different situations
B. Because Ruby is based on many other languages
C. To make the language slower but more complex
D. To force programmers to write longer code
Solution
Step 1: Understand the purpose of control flow styles
Control flow styles help decide how the program runs based on conditions or repeats actions.
Step 2: Match styles to coding needs
Ruby offers different styles so programmers can pick the easiest and clearest way to express their logic.
Final Answer:
To let programmers choose the best style for different situations -> Option A
Quick Check:
Multiple styles = flexible coding [OK]
Hint: Think: multiple styles mean flexible choices [OK]
Common Mistakes:
Thinking Ruby has multiple styles to slow down code
Believing all styles do the same thing exactly
Assuming multiple styles make code longer
2. Which of the following is the correct syntax for a simple if statement in Ruby?
easy
A. if x > 10: puts 'Big'
B. if x > 10 then puts 'Big' end
C. if (x > 10) { puts 'Big' }
D. if x > 10 -> puts 'Big'
Solution
Step 1: Recall Ruby's if syntax
Ruby uses if condition then code end or multiline with end to close.
Step 2: Check each option
Only if x > 10 then puts 'Big' end matches Ruby syntax. The others use colons (Python-style), braces and parentheses (C/JavaScript-style), or arrows (invalid).
Final Answer:
if x > 10 then puts 'Big' end -> Option B
Quick Check:
Ruby if uses then and end [OK]
Hint: Remember Ruby uses 'then' and 'end' for if [OK]
Common Mistakes:
Using braces {} like in JavaScript or C
Using colon : after condition
Using arrow -> instead of then
3. What will be the output of this Ruby code?
score = 85
case score
when 90..100
puts 'Excellent'
when 75..89
puts 'Good'
else
puts 'Needs Improvement'
end
medium
A. Excellent
B. Needs Improvement
C. Good
D. No output
Solution
Step 1: Understand the case statement ranges
The case checks if score is in 90 to 100, then 75 to 89, else other.
Step 2: Check where 85 fits
85 is between 75 and 89, so it matches the second when clause.
Final Answer:
Good -> Option C
Quick Check:
85 in 75..89 = Good [OK]
Hint: Match value to range in case when clauses [OK]
Common Mistakes:
Choosing 'Excellent' for 85
Thinking else runs for 85
Confusing ranges with single values
4. Find the error in this Ruby loop:
i = 0
while i < 3
puts i
i = i + 1
end
puts i
medium
A. There is no error; the code runs correctly
B. The loop will never run because i is 0
C. Missing 'end' keyword to close the while loop
D. The variable i is not initialized
Solution
Step 1: Check loop initialization and condition
Variable i starts at 0, condition is i < 3, so loop runs while i is 0,1,2.
Step 2: Verify loop syntax and increment
Loop has correct 'end', increments i by 1 each time, so it will stop after i reaches 3.
Final Answer:
There is no error; the code runs correctly -> Option A
Quick Check:
Loop runs 3 times, i increments properly [OK]
Hint: Check loop start, condition, increment, and end [OK]
Common Mistakes:
Thinking loop never runs with i=0
Missing the 'end' keyword (but it's present here)
Assuming variable i is uninitialized
5. You want to print different messages based on a variable status that can be 'open', 'closed', or 'pending'. Which Ruby control flow style is best and why?
hard
A. Use multiple if statements because they are simpler
B. Use a for loop to iterate over status values
C. Use a while loop to repeat checking status
D. Use a case statement because it clearly handles multiple fixed choices
Solution
Step 1: Identify the nature of the problem
Status has multiple fixed values and needs different messages for each.
Step 2: Choose the control flow style
A case statement is best for multiple fixed options because it is clear and concise.
Final Answer:
Use a case statement because it clearly handles multiple fixed choices -> Option D
Quick Check:
Multiple fixed choices = case statement [OK]
Hint: Multiple fixed options? Use case statement [OK]
Common Mistakes:
Using multiple ifs making code longer and less clear
Using loops which are for repetition, not choice
Confusing for loops with case statements
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.