Open In App

Ruby | Loops (for, while, do..while, until)

Last Updated : 24 Sep, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Looping is a fundamental concept in programming that allows for the repeated execution of a block of code based on a condition. Ruby, being a flexible and dynamic language, provides various types of loops that can be used to handle condition-based iterations. These loops simplify tasks that require repetitive actions in a program.

The main types of loops in Ruby are:

1. while Loop

The condition that is to be tested, is given at the beginning of the loop and all statements are executed until the given boolean condition satisfies. When the condition becomes false, the control will be out of the while loop. It is also known as an Entry Controlled Loop because the condition to be tested is present at the beginning of the loop body. So basically, while loop is used when the number of iterations is not fixed in a program. 

Syntax:

while conditional [do]
# code to be executed
end

Note: A while loop's conditional is separated from code by the reserved word do, a newline, backslash(\), or a semicolon(;).

Flowchart:
 

while Loop in Ruby


Example:

Ruby
# Ruby program to illustrate 'while' loop

# variable x
x = 4

# using while loop 
# here conditional is x i.e. 4
while x >= 1 

# statements to be executed
  puts "GeeksforGeeks"
  x = x - 1
  
# while loop ends here
end

Output:

GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks 

2. for Loop

"for" loop has similar functionality as while loop but with different syntax. for loop is preferred when the number of times loop statements are to be executed is known beforehand. It iterates over a specific range of numbers. It is also known as Entry Controlled Loop because the condition to be tested is present at the beginning of the loop body.

Syntax:

for variable_name[, variable...] in expression [do]

# code to be executed

end

Components:

  • for: A keyword that begins the loop.
  • variable_name: The loop variable that iterates over values.
  • in: A keyword used to specify the range or array to iterate over.
  • expression: Defines the range, array, or collection.
  • do: (optional) Indicates the beginning of the loop body.
  • end: Marks the end of the loop

Example 1: Iterating over a range
 

Ruby
# Ruby program to illustrate 'for' 
# loop using range as expression

i = "Sudo Placements"

# using for loop with the range
for a in 1..5 do
    
 puts i
 
end

Output: 

Sudo Placements
Sudo Placements
Sudo Placements
Sudo Placements
Sudo Placements

Output: 

1
2
3
4
5

Explanation: Here, we have defined the range 1..5. Range Operators create a range of successive values consisting of a start, end, and range of values in between. The (..) creates a range including the last term. The statement for a in 1..5 will allow a to take values in the range from 1 to 5 (including 5).

Example 2: Iterating over an array

Ruby
# Ruby program to illustrate 'for' 
# loop using array  as expression

# array
arr = ["GFG", "G4G", "Geeks", "Sudo"]

# using for loop
for i in arr do
    
 puts i
 
end

Output: 

GFG
G4G
Geeks
Sudo

3. do..while Loop

do while loop is similar to while loop with the only difference that it checks the condition after executing the statements, i.e it will execute the loop body one time for sure. It is a Exit-Controlled loop because it tests the condition which presents at the end of the loop body. 

Syntax:

loop do

# code to be executed

break if Boolean_Expression

end

Here, Boolean_Expression will result in either a true or false output which is created using comparing operators (>, =, <=, !=, ==). You can also use multiple boolean expressions within the parentheses (Boolean_Expressions) which will be connected through logical operators (&&, ||, !).

Example:

Ruby
# Ruby program to illustrate 'do..while'loop

# starting of do..while loop
loop do
    
 puts "GeeksforGeeks"
 
 val = '7'
 
 # using boolean expressions
 if val == '7'
  break
 end
 
# ending of ruby do..while loop 
end

Output: 
 

GeeksforGeeks

4. until Loop

Ruby until loop will executes the statements or code till the given condition evaluates to true. Basically it's just opposite to the while loop which executes until the given condition evaluates to false. An until statement's conditional is separated from code by the reserved word do, a newline, or a semicolon.

Syntax: 

until conditional [do]

# code to be executed

end

Example:

Ruby
# Ruby program to illustrate 'until' loop

var = 7

# using until loop
# here do is optional
until var == 11 do

  # code to be executed
  puts var * 10
  var = var + 1
  
# here loop ends
end

Output:

70
80
90
100

Summary of Loop Types:

Loop TypeControl TypeCondition EvaluatedUse Case
whileEntry-controlledBefore loop startsWhen the number of iterations is unknown.
forEntry-controlledBefore loop startsWhen the number of iterations is known (iterating over a range or collection).
do..whileExit-controlledAfter loop executionWhen you need the loop to execute at least once.
untilEntry-controlledBefore loop startsWhen you want to loop until a condition is true

Conclusion

Ruby offers a variety of looping constructs to handle repetitive tasks in different scenarios. The while and for loops are entry-controlled, meaning the condition is evaluated before executing the loop body. On the other hand, the do..while loop is exit-controlled, ensuring the loop body is executed at least once. The until loop provides an alternative way to execute a loop until a condition is met


Next Article
Article Tags :

Similar Reads