What does the break keyword do inside a Ruby loop?
It immediately stops the loop and exits it, continuing execution after the loop.
Click to reveal answer
beginner
How does next behave inside a Ruby loop?
It skips the rest of the current loop iteration and moves to the next iteration.
Click to reveal answer
intermediate
What is the purpose of redo in a Ruby loop?
It restarts the current iteration of the loop without re-evaluating the loop condition or moving to the next element.
Click to reveal answer
beginner
Given this code snippet, what will be printed?
i = 0
while i < 3
i += 1
next if i == 2
puts i
end
It will print:
1
3
Because when i is 2, next skips the puts and moves to the next iteration.
Click to reveal answer
intermediate
Explain the difference between redo and next in Ruby loops.
next skips to the next iteration, moving forward in the loop. redo repeats the current iteration without moving forward or checking the loop condition again.
Click to reveal answer
What happens when break is executed inside a Ruby loop?
AThe loop continues normally.
BThe current iteration is skipped.
CThe loop stops immediately and exits.
DThe current iteration restarts.
✗ Incorrect
break stops the loop immediately and exits it.
Which keyword skips the rest of the current iteration and moves to the next one in Ruby?
Abreak
Bnext
Credo
Dcontinue
✗ Incorrect
next skips the rest of the current iteration and moves to the next.
What does redo do inside a Ruby loop?
ARepeats the current iteration without moving forward.
BSkips to the next iteration.
CExits the loop.
DEnds the current iteration and moves forward.
✗ Incorrect
redo repeats the current iteration without advancing or checking the loop condition.
In Ruby, which keyword would you use to restart the current loop iteration without changing the loop variable?
Aredo
Bnext
Cbreak
Dretry
✗ Incorrect
redo restarts the current iteration without changing the loop variable.
What will this Ruby code print?
3.times do |i|
if i == 1
break
end
puts i
end
A0 1 2
BNothing
C1 2
D0
✗ Incorrect
When i is 1, break stops the loop, so only 0 is printed.
Describe how break, next, and redo control the flow inside Ruby loops.
Think about whether the loop stops, skips forward, or repeats.
You got /3 concepts.
Give an example scenario where using redo inside a loop is helpful.
Consider when you want to try the same step again without advancing.
You got /3 concepts.
Practice
(1/5)
1. What does the break keyword do inside a Ruby loop?
easy
A. Stops the loop completely and exits it
B. Skips the current iteration and moves to the next
C. Repeats the current iteration without moving forward
D. Pauses the loop until a condition is met
Solution
Step 1: Understand the role of break
The break keyword immediately stops the loop and exits it, no further iterations happen.
Step 2: Compare with other keywords
next skips to the next iteration, redo repeats the current one, but break stops all looping.
Final Answer:
Stops the loop completely and exits it -> Option A
Quick Check:
break = stop loop [OK]
Hint: Break means stop the loop right away [OK]
Common Mistakes:
Confusing break with next
Thinking break repeats iteration
Assuming break pauses instead of stops
2. Which of the following is the correct syntax to skip the current iteration in a Ruby loop?
easy
A. break
B. next
C. redo
D. skip
Solution
Step 1: Identify the keyword for skipping iteration
The keyword next is used in Ruby to skip the rest of the current loop iteration and move to the next one.
Step 2: Check other options
break stops the loop, redo repeats the current iteration, and skip is not a Ruby keyword.
Final Answer:
next -> Option B
Quick Check:
Skip iteration = next [OK]
Hint: Use next to jump to next loop step [OK]
Common Mistakes:
Using break instead of next
Trying to use skip keyword (not valid)
Confusing redo with next
3. What is the output of this Ruby code?
i = 0
while i < 3
i += 1
if i == 2
redo
end
puts i
end
medium
A. 1 2 2 2 ... (infinite loop)
B. 1 3
C. 1 2 3
D. 1 3 3
Solution
Step 1: Trace the loop and redo behavior
When i == 2, redo repeats the current iteration without incrementing i again, causing the loop to print 2 repeatedly.
Step 2: Understand infinite repetition
Since i is not changed inside the redo loop, it never moves past 2, causing an infinite loop printing 2 repeatedly.
Final Answer:
1 2 2 2 ... (infinite loop) -> Option A
Quick Check:
redo repeats current step causing infinite loop [OK]
Hint: Redo repeats current step, watch for infinite loops [OK]
Common Mistakes:
Assuming i increments inside redo
Thinking redo skips iteration
Ignoring infinite loop possibility
4. Find the error in this Ruby code snippet:
for i in 1..3
if i == 2
next
elsif i == 3
redo
end
puts i
end
medium
A. puts should be before if statement
B. next cannot be used inside for loops
C. Syntax error: missing end for if
D. Using redo inside for loop causes infinite loop
Solution
Step 1: Analyze the use of redo in the loop
The redo inside the elsif i == 3 causes the loop to repeat the same iteration infinitely because i does not change.
Step 2: Check other options for errors
next works fine in for loops, the if statement is properly closed, and puts can be after if.
Final Answer:
Using redo inside for loop causes infinite loop -> Option D
Quick Check:
Redo repeats current step causing infinite loop [OK]
Hint: Redo without changing loop variable causes infinite loop [OK]
Common Mistakes:
Thinking next is invalid in for loops
Missing that redo repeats without increment
Assuming syntax error due to indentation
5. You want to print numbers 1 to 5 but skip 3 and repeat printing 4 twice using next and redo. Which code achieves this correctly?
i = 0
while i < 5
i += 1
if i == 3
# skip 3
elsif i == 4
# print 4 twice
end
puts i
end
hard
A. if i == 3
next
elsif i == 4
puts i
redo
next
end
B. if i == 3
next
elsif i == 4
redo
end
C. if i == 3
next
elsif i == 4
puts i
redo
end
D. if i == 3
redo
elsif i == 4
next
end
Solution
Step 1: Skip number 3 using next
Using next when i == 3 skips printing 3 and moves to next iteration.
Step 2: Repeat printing 4 twice using redo
When i == 4, print it once, then use redo to repeat the iteration and print 4 again.
Step 3: Verify code correctness
if i == 3
next
elsif i == 4
puts i
redo
end prints 4, then calls redo to repeat printing 4, and skips 3 correctly. Other options misuse next or redo causing errors or infinite loops.
Final Answer:
if i == 3
next
elsif i == 4
puts i
redo
end -> Option C
Quick Check:
next skips, redo repeats current step [OK]
Hint: Use next to skip, redo after puts to repeat [OK]
Common Mistakes:
Calling redo before puts causing infinite loop
Using next after redo incorrectly
Not skipping 3 properly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.