📖 Scenario: You are helping a small shop count how many items they have in stock. The shop owner wants to count items one by one until they reach the total number of items.
🎯 Goal: Build a Ruby program that uses a while loop to count items from 1 up to a total number and then shows the final count.
📋 What You'll Learn
Create a variable called total_items with the value 10
Create a variable called count starting at 1
Use a while loop with the condition count <= total_items
Inside the loop, print the current count value
Increase count by 1 inside the loop
After the loop, print "Counting finished: 10 items counted."
💡 Why This Matters
🌍 Real World
Counting items one by one is common in shops, inventories, or any place where you need to process things step by step.
💼 Career
Understanding loops is essential for automating repetitive tasks in programming jobs, such as data processing or user input handling.
Progress0 / 4 steps
1
Set up the total number of items
Create a variable called total_items and set it to 10.
Ruby
Hint
Use = to assign the number 10 to total_items.
2
Create a counter variable
Create a variable called count and set it to 1.
Ruby
Hint
Start counting from 1 by assigning 1 to count.
3
Write the while loop to count items
Write a while loop with the condition count <= total_items. Inside the loop, print the current count value, then increase count by 1.
Ruby
Hint
Use while count <= total_items to start the loop. Use puts count to print, and count += 1 to add one to count.
4
Print the final message after counting
After the while loop, print the message "Counting finished: 10 items counted.".
Ruby
Hint
Use puts to print the final message after the loop ends.
Practice
(1/5)
1. What does a while loop do in Ruby?
easy
A. Stops the program immediately
B. Runs code only once regardless of condition
C. Repeats code as long as a condition is true
D. Executes code after the loop ends
Solution
Step 1: Understand the purpose of a while loop
A while loop runs the code inside it repeatedly as long as the condition is true.
Step 2: Compare options with the definition
Only Repeats code as long as a condition is true correctly describes this behavior.
Final Answer:
Repeats code as long as a condition is true -> Option C
Quick Check:
while loop = repeats while true [OK]
Hint: Remember: while loops run only if condition is true [OK]
Common Mistakes:
Thinking while loop runs code once
Confusing while with if statement
Assuming it stops program immediately
2. Which of the following is the correct syntax for a while loop in Ruby?
easy
A. while condition
# code
loop
B. while (condition) {
# code
}
C. while condition:
# code
D. while condition do
# code
end
Solution
Step 1: Recall Ruby while loop syntax
Ruby uses while condition do ... end or while condition ... end without braces.
Step 2: Check each option
while condition do
# code
end matches Ruby syntax. Options B and C use other languages' syntax. while condition
# code
loop is invalid.
Final Answer:
while condition do\n # code\nend -> Option D
Quick Check:
Ruby while loop uses do/end [OK]
Hint: Ruby uses do/end, not braces or colons for while [OK]
Common Mistakes:
Using braces {} like in JavaScript
Using colon : like in Python
Ending with 'loop' keyword
3. What is the output of this Ruby code?
i = 1
while i <= 3 do
puts i
i += 1
end
medium
A. 1 2 3
B. 1 2 3 4
C. 0 1 2 3
D. No output
Solution
Step 1: Trace the loop iterations
i starts at 1. Loop runs while i <= 3. It prints i then adds 1 each time.
Step 2: List printed values
Prints 1, then 2, then 3. When i becomes 4, condition fails and loop stops.
Final Answer:
1 2 3 -> Option A
Quick Check:
Prints 1 to 3 inclusive [OK]
Hint: Count from start to condition limit inclusive [OK]
Common Mistakes:
Including 4 in output
Starting from 0 instead of 1
No output due to syntax errors
4. Identify the error in this Ruby code:
count = 5
while count > 0
puts count
end
medium
A. Wrong variable name used in condition
B. Missing increment or decrement causing infinite loop
C. Syntax error: missing 'do' keyword
D. puts should be outside the loop
Solution
Step 1: Analyze loop condition and body
count starts at 5 and condition is count > 0. Inside loop, count is never changed.
Step 2: Understand loop behavior
Since count never decreases, condition stays true forever, causing infinite loop.
Final Answer:
Missing increment or decrement causing infinite loop -> Option B
Quick Check:
Loop needs variable change to stop [OK]
Hint: Always update loop variable inside while [OK]
Common Mistakes:
Forgetting to change loop variable
Assuming 'do' is mandatory
Thinking puts outside loop fixes error
5. How can you use a while loop to sum all even numbers from 2 to 10 inclusive in Ruby?
hard
A. i = 2
sum = 0
while i <= 10 do
sum += i
i += 2
end
puts sum
B. i = 1
sum = 0
while i <= 10 do
if i % 2 == 0
sum += i
end
i += 1
end
puts sum
C. sum = 0
while i <= 10 do
sum += i
i += 1
end
puts sum
D. i = 2
sum = 0
while i < 10 do
sum += i
i += 2
end
puts sum
Solution
Step 1: Understand the goal
We want to add even numbers from 2 to 10 inclusive.
Step 2: Check each option's logic
i = 2
sum = 0
while i <= 10 do
sum += i
i += 2
end
puts sum starts at 2 and increments by 2 up to 10 inclusive, summing even numbers correctly. i = 1
sum = 0
while i <= 10 do
if i % 2 == 0
sum += i
end
i += 1
end
puts sum checks each number from 1 to 10 and adds if even, also correct but less efficient. sum = 0
while i <= 10 do
sum += i
i += 1
end
puts sum sums all numbers, not just even. i = 2
sum = 0
while i < 10 do
sum += i
i += 2
end
puts sum stops before 10, missing 10.
Step 3: Choose best option
i = 2
sum = 0
while i <= 10 do
sum += i
i += 2
end
puts sum is more direct and efficient for summing even numbers from 2 to 10 inclusive.
Final Answer:
Option A code correctly sums even numbers 2 to 10 inclusive -> Option A
Quick Check:
Increment by 2 starting at 2, sum all [OK]
Hint: Increment by 2 starting at 2 to sum even numbers [OK]
Common Mistakes:
Forgetting to include 10 in sum
Adding all numbers, not just even
Using wrong loop condition
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.