📖 Scenario: You are helping a store manager compare product prices to decide which items are cheaper or more expensive.
🎯 Goal: You will write a Ruby program that uses comparison operators to compare product prices and print the results.
📋 What You'll Learn
Create a hash with product names and their prices
Create a variable with a price threshold
Use comparison operators to check if each product price is less than, equal to, or greater than the threshold
Print the comparison results
💡 Why This Matters
🌍 Real World
Stores often compare product prices to decide discounts or promotions.
💼 Career
Understanding comparison operators is essential for decision-making logic in programming jobs.
Progress0 / 4 steps
1
Create the product prices hash
Create a hash called products with these exact entries: 'apple' => 100, 'banana' => 50, 'cherry' => 75
Ruby
Hint
Use curly braces {} to create a hash and separate keys and values with =>.
2
Set the price threshold
Create a variable called threshold and set it to 70
Ruby
Hint
Just assign the number 70 to the variable threshold.
3
Compare product prices to the threshold
Use a products.each loop with variables product and price to compare each price with threshold using <, ==, and > operators. Inside the loop, create a variable result that stores the string "less than" if price < threshold, "equal to" if price == threshold, or "greater than" if price > threshold.
Ruby
Hint
Use if, elsif, and else inside the loop to set result.
4
Print the comparison results
Inside the products.each loop, add a puts statement to print the message: "The price of #{product} is #{result} the threshold."
Ruby
Hint
Use puts with string interpolation to print the message inside the loop.
Practice
(1/5)
1. Which of the following comparison operators in Ruby checks if two values are equal?
easy
A. ==
B. =
C. !=
D. >
Solution
Step 1: Understand the purpose of each operator
== checks equality, = assigns values, != checks inequality, and > checks if left is greater than right.
Step 2: Identify the equality operator
The operator that compares two values for equality is ==.
Final Answer:
== -> Option A
Quick Check:
Equality operator = == [OK]
Hint: Equality uses double equals (==), not single equals (=) [OK]
Common Mistakes:
Confusing assignment (=) with equality (==)
Using != instead of ==
Thinking > checks equality
2. Which of the following is the correct syntax to check if variable a is not equal to variable b in Ruby?
easy
A. a !== b
B. a =! b
C. a <> b
D. a != b
Solution
Step 1: Recall Ruby's not equal operator
Ruby uses != to check if two values are not equal.
Step 2: Check each option's syntax
a != b is correct. a =! b is invalid syntax. a <> b is not Ruby syntax. a !== b is JavaScript syntax, not Ruby.
Final Answer:
a != b -> Option D
Quick Check:
Not equal operator = != [OK]
Hint: Not equal in Ruby is !=, not =! or !== [OK]
Common Mistakes:
Using =! instead of !=
Using !== which is JavaScript, not Ruby
Using <> which is invalid in Ruby
3. What will be the output of the following Ruby code?
a = 5 b = 10 puts a < b
medium
A. true
B. false
C. 5
D. 10
Solution
Step 1: Understand the comparison
The code compares if a (5) is less than b (10).
Step 2: Evaluate the comparison
Since 5 is less than 10, the expression a < b is true.
Final Answer:
true -> Option A
Quick Check:
5 < 10 = true [OK]
Hint: Less than is <, returns true or false [OK]
Common Mistakes:
Confusing output with variable values
Expecting numeric output instead of boolean
Mixing up < and > operators
4. Identify the error in the following Ruby code:
if x = 10 puts "x is 10" end
medium
A. Variable x is not declared
B. Missing end keyword
C. Should use == to compare, not =
D. puts syntax is wrong
Solution
Step 1: Analyze the if condition
The code uses = which assigns 10 to x, not compares.
Step 2: Correct the comparison operator
To check if x equals 10, use == instead of =.
Final Answer:
Should use == to compare, not = -> Option C
Quick Check:
Comparison needs ==, = is assignment [OK]
Hint: Use == for comparison, = is for assignment [OK]
Common Mistakes:
Using = instead of ==
Thinking missing end keyword causes error
Assuming variable must be declared before use
5. You want to check if a number n is between 10 and 20 inclusive in Ruby. Which expression correctly uses comparison operators to do this?
hard
A. n > 10 || n < 20
B. n >= 10 && n <= 20
C. 10 <= n <= 20
D. n == 10 && n == 20
Solution
Step 1: Understand the range check
We want n to be at least 10 and at most 20, so both conditions must be true.
Step 2: Evaluate each option
n >= 10 && n <= 20 uses n >= 10 && n <= 20, which correctly checks both limits. 10 <= n <= 20 uses chained comparison which is invalid in Ruby. n > 10 || n < 20 uses OR (||), which allows values outside the range. n == 10 && n == 20 checks if n equals both 10 and 20 simultaneously, which is impossible.
Final Answer:
n >= 10 && n <= 20 -> Option B
Quick Check:
Use && to combine two comparisons [OK]
Hint: Use && to combine two comparisons for range checks [OK]
Common Mistakes:
Trying chained comparisons like 10 <= n <= 20
Using || instead of && for range
Checking equality to both ends simultaneously
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.