📖 Scenario: You are helping a small bookstore organize its inventory. The store wants to list the names of some popular books it has in stock.
🎯 Goal: You will create a list of book titles, set up a counter for counting books, use a for loop to go through each book, and finally print each book's name.
📋 What You'll Learn
Create an array called books with the exact titles: 'The Hobbit', '1984', 'Pride and Prejudice'
Create a variable called count and set it to 0
Use a for loop with the variable book to iterate over books
Inside the loop, increment count by 1
Inside the loop, print the current book
After the loop, print the total number of books using count
💡 Why This Matters
🌍 Real World
Bookstores and libraries often need to list and count books in their inventory. Using loops helps automate this task.
💼 Career
Knowing how to loop through lists and count items is a basic skill for many programming jobs, including data processing and software development.
Progress0 / 4 steps
1
Create the list of books
Create an array called books with these exact titles: 'The Hobbit', '1984', 'Pride and Prejudice'
Ruby
Hint
Use square brackets [] to create an array and separate items with commas.
2
Set up a counter
Create a variable called count and set it to 0
Ruby
Hint
Just write count = 0 to start counting from zero.
3
Use a for loop to go through each book
Use a for loop with the variable book to iterate over books. Inside the loop, increase count by 1 and print the current book
Ruby
Hint
Use for book in books to start the loop, count += 1 to add one, and puts book to print.
4
Print the total number of books
After the loop, print the total number of books using count with puts
Ruby
Hint
Use puts "Total books: #{count}" to show the total count.
Practice
(1/5)
1. What does the following Ruby for loop do?
for i in 1..3 puts i end
easy
A. Prints numbers 1, 2, and 3 each on a new line
B. Prints numbers 1 to 2 only
C. Prints numbers 0 to 3
D. Causes a syntax error
Solution
Step 1: Understand the range 1..3
The range 1..3 includes the numbers 1, 2, and 3.
Step 2: Loop through each number and print
The loop prints each number on its own line using puts.
Final Answer:
Prints numbers 1, 2, and 3 each on a new line -> Option A
Quick Check:
for loop with 1..3 prints 1, 2, 3 [OK]
Hint: Remember 1..3 includes 3, so loop prints 1, 2, 3 [OK]
Common Mistakes:
Thinking 1..3 excludes 3
Confusing puts with print
Expecting syntax error
2. Which of the following is the correct syntax for a for loop in Ruby to iterate over an array ["a", "b", "c"]?
easy
A. for x to ["a", "b", "c"] puts x end
B. for (x : ["a", "b", "c"]) puts x end
C. for x in ["a", "b", "c"] do puts x end
D. for x in ["a", "b", "c"] puts x
Solution
Step 1: Check the correct Ruby for loop syntax
Ruby uses for variable in collection do ... end or without do.
Step 2: Validate each option
for x in ["a", "b", "c"] do puts x end uses correct syntax with for x in array do ... end. for (x : ["a", "b", "c"]) puts x end and C use invalid syntax. for x in ["a", "b", "c"] puts x misses end to close the loop.
Final Answer:
for x in ["a", "b", "c"] do puts x end -> Option C
Quick Check:
Correct Ruby for loop uses 'for x in collection do ... end' [OK]
Hint: Remember: for x in collection do ... end is correct Ruby syntax [OK]
Common Mistakes:
Using colon or 'to' instead of 'in'
Omitting the 'end' keyword
Adding parentheses incorrectly
3. What is the output of this Ruby code?
sum = 0 for i in 1..4 sum += i end puts sum
medium
A. Error
B. 9
C. 0
D. 10
Solution
Step 1: Understand the loop range and sum initialization
The loop runs from 1 to 4, and sum starts at 0.
Step 2: Calculate sum after each iteration
sum = 0+1=1, then 1+2=3, then 3+3=6, then 6+4=10.
Final Answer:
10 -> Option D
Quick Check:
Sum of 1 to 4 is 10 [OK]
Hint: Add numbers 1 through 4 to get 10 quickly [OK]
Common Mistakes:
Forgetting to include last number 4
Starting sum at 1 instead of 0
Syntax errors in loop
4. Identify the error in this Ruby for loop:
for i in 1..3 puts i
medium
A. Wrong range syntax
B. Missing end to close the loop
C. Variable i not defined
D. Using puts inside loop is invalid
Solution
Step 1: Check loop syntax completeness
The loop starts with for but does not have a matching end.
Step 2: Confirm other parts are correct
The range 1..3 and variable i are valid, and puts is allowed inside loops.
Final Answer:
Missing end to close the loop -> Option B
Quick Check:
Every for loop needs an 'end' [OK]
Hint: Always close for loops with 'end' [OK]
Common Mistakes:
Forgetting 'end' keyword
Thinking variable must be declared first
Believing puts is invalid inside loops
5. You want to create a Ruby for loop that prints only even numbers from 2 to 10 inclusive. Which code snippet achieves this correctly?
hard
A. for i in 2..10 do
puts i if i % 2 == 0
end
B. for i in 2..10 do
puts i if i % 2 == 1
end
C. for i in 1..10 do
puts i if i % 2 == 1
end
D. for i in 2..10
puts i
end
Solution
Step 1: Identify the range and condition for even numbers
The range 2..10 includes numbers 2 through 10. Even numbers satisfy i % 2 == 0.
Step 2: Check each option's condition
for i in 2..10 do
puts i if i % 2 == 0
end prints numbers in 2..10 only if even. for i in 2..10 do
puts i if i % 2 == 1
end prints odd numbers. for i in 1..10 do
puts i if i % 2 == 1
end prints odd numbers 1,3,5,7,9. for i in 2..10
puts i
end prints all numbers without filtering.
Final Answer:
for i in 2..10 do
puts i if i % 2 == 0
end -> Option A
Quick Check:
Filter with 'if i % 2 == 0' inside for loop [OK]
Hint: Use 'if i % 2 == 0' inside for loop to print evens [OK]
Common Mistakes:
Using wrong modulo condition for even numbers
Not filtering numbers inside loop
Starting range at 1 instead of 2
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.