6.17. Ruby cycle

发布时间 :2023-10-26 23:00:07 UTC      

Loops in Ruby are used to execute the same block of code several times. Thissection details all the loop statements supported by Ruby.

6.17.1. 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

6.17.2. 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

6.17.3. 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

6.17.4. 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

6.17.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

6.17.6. 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

6.17.7. 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

6.17.8. 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
............................

6.17.9. 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
............................

Principles, Technologies, and Methods of Geographic Information Systems  102

In recent years, Geographic Information Systems (GIS) have undergone rapid development in both theoretical and practical dimensions. GIS has been widely applied for modeling and decision-making support across various fields such as urban management, regional planning, and environmental remediation, establishing geographic information as a vital component of the information era. The introduction of the “Digital Earth” concept has further accelerated the advancement of GIS, which serves as its technical foundation. Concurrently, scholars have been dedicated to theoretical research in areas like spatial cognition, spatial data uncertainty, and the formalization of spatial relationships. This reflects the dual nature of GIS as both an applied technology and an academic discipline, with the two aspects forming a mutually reinforcing cycle of progress.