Ruby cycle
Loops in Ruby are used to execute the same block of code several times. Thissection details all the loop statements supported by Ruby.
Ruby while
statement
Grammar
whileconditional[do]codeend
Or
Grammar
whileconditional[:]codeend
When conditional
is true, execute code
.
In grammar do
or :
can be omitted without writing. But if you want to write it in one line `` While`` type, you must use the do
or :
separate conditional or program blocks.
Example
#!/usr/bin/ruby#-*- coding: UTF-8
-*-$i=0$num=5while$i<$numdoputs("In a loop statement i = #$i")$i+=1end
The output result of the above example is:
In a loop statement, i=0
In a loop statement, i=1
In a loop statement, i=2
In a loop statement, i=3
In a loop statement, i=4
Ruby while
modifier
Grammar
codewhilecondition or begincodeendwhileconditional
When conditional
is true, execute code
.
If while
modifier follows a no rescue
or ensure
of the clause begin
after the statement code
will be in conditional
execute once before judgment.
Example
#!/usr/bin/ruby#-*- coding: UTF-8 -*-$i=0$num=5beginputs("In a loop statement i
= #$i")$i+=1endwhile$i<$num
The output result of the above example is:
In a loop statement, i=0
In a loop statement, i=1
In a loop statement, i=2
In a loop statement, i=3
In a loop statement, i=4
Ruby until
statement
Grammar
untilconditional[do]codeend
When conditional
is false, execute code
.
In grammar do
can omit it. But if you want to write a until
type, you must use the do
separate conditional or program blocks.
Example
#!/usr/bin/ruby#-*- coding: UTF-8
-*-$i=0$num=5until$i>$numdoputs("In a loop statement i = #$i")$i+=1;end
The output result of the above example is:
In a loop statement, i=0
In a loop statement, i=1
In a loop statement, i=2
In a loop statement, i=3
In a loop statement, i=4
In a loop statement, i=5
Ruby until
modifier
Grammar
codeuntilconditional or begincodeenduntilconditional
When conditional is false, execute code .
If until
modifier follows a no rescue
or ensure
of the clause begin
after the statement code
will be in conditional
execute once before judgment.
Example
#!/usr/bin/ruby#-*- coding: UTF-8 -*-$i=0$num=5beginputs("In a loop statement i
= #$i")$i+=1;enduntil$i>$num
The output result of the above example is:
In a loop statement, i=0
In a loop statement, i=1
In a loop statement, i=2
In a loop statement, i=3
In a loop statement, i=4
In a loop statement, i=5
Ruby for
statement
Grammar
forvariable[,variable...]inexpression[do]codeend
First evaluate the expression to get an object, and then target the expression
execute each element in the code
.
Example
#!/usr/bin/ruby#-*- coding: UTF-8 -*-foriin0..5puts"The value of a local variable is
#{i}"end
Here, we have defined the range 0. 5. The statement for i in 0.. 5 allows the value of I from 0 to 5 (inclusive).
The output result of the above example is:
The value of the local variable is 0
The value of the local variable is 1
The value of the local variable is 2
The value of the local variable is 3
The value of the local variable is 4
The value of the local variable is 5
for...in
loop is almost exactly equivalent to:
(expression).eachdo\|variable[,variable...]\|codeend
However, the for loop does not create a new scope for local variables.
In grammar do
can omit it. But if you want to write a for
type, you must use the do
separate conditional or program blocks.
Example
#!/usr/bin/ruby#-*- coding: UTF-8
-*-(0..5).eachdo\|i\|puts"The value of a local variable is #{i}"end
The output result of the above example is:
The value of the local variable is 0
The value of the local variable is 1
The value of the local variable is 2
The value of the local variable is 3
The value of the local variable is 4
The value of the local variable is 5
Ruby break
statement
Grammar
break
End the innermost loop. If called within a block, the method of the related block is terminated (the method returns nil
).
Example
#!/usr/bin/ruby#-*- coding: UTF-8
-*-foriin0..5ifi>2thenbreakendputs"The value of a local variable is #{i}"end
The output result of the above example is:
The value of the local variable is 0
The value of the local variable is 1
The value of the local variable is 2
Ruby next
statement
Grammar
next
Skip to the next iteration of the loop. If called within a block, the execution of the block is terminated yield
expression returns nil
).
Example
#!/usr/bin/ruby#-*- coding: UTF-8
-*-foriin0..5ifi<2thennextendputs"The value of a local variable is #{i}"end
The output result of the above example is:
The value of the local variable is 2
The value of the local variable is 3
The value of the local variable is 4
The value of the local variable is 5
Ruby redo
statement
Grammar
redo
Restart the iteration of the innermost loop without checking the loop conditions. If called within a block, start over yield
or call
.
Example
#!/usr/bin/ruby#-*- coding: UTF-8
-*-foriin0..5ifi<2thenputs"The value of a local variable is #{i}"redoendend
This will produce the following results and enter an infinite loop:
The value of the local variable is 0
The value of the local variable is 0
............................
Ruby retry
statement
Note:1.9 and later versions do not support using retry
in loops.
Grammar
retry
If retry
appear in begin
of the expression rescue
clause, then from the begin
the beginning of the subject starts over.
begindo_something#Exception thrownrescue
#process errorretry#Starting from begin againend
If retry
appears within an iteration, within a block, or for
within the body of the expression, the iterative call is restarted. The parameters of the iteration are reevaluated.
foriin1..5retryifsome_condition#Starting from i==1 again end
Example
#!/usr/bin/ruby#-*- coding: UTF-8
-*-foriin1..5retryifi>2puts"The value of a local variable is #{i}"end
This will produce the following results and enter an infinite loop:
The value of the local variable is 1
The value of the local variable is 2
The value of the local variable is 1
The value of the local variable is 2
The value of the local variable is 1
The value of the local variable is 2
............................