English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby Loops

Die Schleifen in Ruby werden verwendet, um denselben Codeblock mehrere Male auszuführen. In diesem Kapitel wird eine detaillierte Einführung in alle Schleifenoperationen von Ruby gegeben.

Ruby solange Anweisung

Syntax

solange bedingter Bedingung [do]
   code
end

code until bedingung

Syntax

solange bedingter Bedingung [:]
   code
end

end until bedingung bedingung wenn wahr, dann ausführen code.

In der Grammatik kann do oder : weggelassen werden. Um einen while- Ausdruck auf einer Zeile zu schreiben, muss jedoch die Bedingung oder das Programmsegment durch do oder : getrennt werden.

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
$i = 0
$num = 5
solange $i < $num  tun
   puts("In der Schleifenanweisung i = #$i")
   $i +=1
end

Die obige Beispiel-Ausgabe ist:

In der Schleifenanweisung i = 0
In der Schleifenanweisung i = 1
In der Schleifenanweisung i = 2
In der Schleifenanweisung i = 3
In der Schleifenanweisung i = 4

Ruby solange bis $i > $num do

Syntax

code während Bedingung
code until bedingung
begin 
  code 
beenden, solange bedingter Bedingung

end until bedingung bedingung wenn wahr, dann ausführen code.

wenn solange bis rescue Modifikator folgt einem, der keine begin oder dem 'ensure'-Unterklauselcode Wird nach der Anweisung oder dem bedingung Wird vor der Ausführung einmal beurteilt.

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
$i = 0
$num = 5
begin
   puts("In der Schleifenanweisung i = #$i")
   $i +=1
beenden, solange $i < $num

Die obige Beispiel-Ausgabe ist:

In der Schleifenanweisung i = 0
In der Schleifenanweisung i = 1
In der Schleifenanweisung i = 2
In der Schleifenanweisung i = 3
In der Schleifenanweisung i = 4

Ruby wenn falsch, wird ausgeführt Anweisung

Syntax

bis bedingter Bedingung [do]
   code
end

end until bedingung bedingung 为假时,执行 code.

wenn falsch, wird ausgeführt

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
$i = 0
$num = 5
In der Syntax kann 'do' weggelassen werden. Wenn jedoch ein Zeilenübergreifendes 'until'-Format geschrieben werden soll, muss 'do' zwischen der Bedingung oder dem Programmcode stehen.
   puts("In der Schleifenanweisung i = #$i")
   $i +=1;
end

Die obige Beispiel-Ausgabe ist:

In der Schleifenanweisung i = 0
In der Schleifenanweisung i = 1
In der Schleifenanweisung i = 2
In der Schleifenanweisung i = 3
In der Schleifenanweisung i = 4
In der Schleifenanweisung i = 5

Ruby wenn falsch, wird ausgeführt bis $i > $num do

Syntax

Modifikator
code until bedingung
begin
   code
oder

end until bedingung bedingung wenn code.

wenn wenn falsch, wird ausgeführt bis rescue Modifikator folgt einem, der keine begin oder dem 'ensure'-Unterklauselcode Wird nach der Anweisung oder dem bedingung Wird vor der Ausführung einmal beurteilt.

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
$i = 0
$num = 5
begin
   puts("In der Schleifenanweisung i = #$i")
   $i +=1;
end until $i > $num

Die obige Beispiel-Ausgabe ist:

In der Schleifenanweisung i = 0
In der Schleifenanweisung i = 1
In der Schleifenanweisung i = 2
In der Schleifenanweisung i = 3
In der Schleifenanweisung i = 4
In der Schleifenanweisung i = 5

Ruby for Anweisung

Syntax

for variable [, variable ...] in expression [do]
   code
end

Zunächst wird das Ausdruck berechnet, um ein Objekt zu erhalten, und dann wird expression Jedes Element einmal ausführen code.

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 0..5
   puts "The value of the local variable is #{i}"
end

Hier haben wir den Bereich 0.. definiert5. Anweisung 'for i in 0..5 Ermöglicht dem Wert von i von 0 bis 5Enthält 5)

Die obige Beispiel-Ausgabe ist:

Der Wert der lokalen Variablen ist 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 Der Schleifenzyklus ist fast vollständig äquivalent zu:

(expression).each do |variable[, variable...]| code end

Der 'for'-Schleifenzyklus erstellt jedoch keine neue Gültigkeitsbereiche für lokale Variablen.

In der Syntax kann 'do' weggelassen werden. Wenn jedoch ein Zeilenübergreifendes 'for'-Format geschrieben werden soll, muss 'do' zwischen der Bedingung oder dem Programmcode stehen.

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
(0..5).each do |i|
   puts "The value of the local variable is #{i}"
end

Die obige Beispiel-Ausgabe ist:

Der Wert der lokalen Variablen ist 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 Anweisung

Syntax

break

Beendet den innersten Schleifenblock. Wenn im Block aufgerufen, wird der Methode des Blocks beendet (Methode gibt nil zurück).

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 0..5
   if i > 2 dann
      break
   end
   puts "The value of the local variable is #{i}"
end

Die obige Beispiel-Ausgabe ist:

Der Wert der lokalen Variablen ist 0
The value of the local variable is 1
The value of the local variable is 2

Ruby next Anweisung

Syntax

next

Springt zur nächsten Iteration der Schleife. Wenn im Block aufgerufen, wird die Ausführung des Blocks beendet (yield Das Ausdruck zurückgibt nil).

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 0..5
   if i < 2 dann
      next
   end
   puts "The value of the local variable is #{i}"
end

Die obige Beispiel-Ausgabe ist:

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 Anweisung

Syntax

redo

Führt die aktuelle Iteration des innersten Schleifenblocks neu ohne die Schleifenbedingung zu überprüfen aus. Wenn im Block aufgerufen, beginnt neu yield oder call.

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 0..5
   if i < 2 dann
      puts "The value of the local variable is #{i}"
      redo
   end
end

This will produce the following result and enter an infinite loop:

Der Wert der lokalen Variablen ist 0
Der Wert der lokalen Variablen ist 0
............................

Ruby retry Anweisung

Hinweis:1.9und späteren Versionen wird die Verwendung von 'retry' in Schleifen nicht unterstützt.

Syntax

retry

wenn retry Wenn 'begin' Ausdruck in der 'rescue' Unterklausel auftritt, beginnt der 'begin' Hauptteil von vorne neu.

begin
   do_something   # Thrown exception
rescue
   # Error Handling
   retry          # Restart from begin
end

If retry appears within an iteration, block, or the body of a for expression, the iteration will restart. The iteration parameters will be re-evaluated.

for i in 1..5
   retry if some_condition # Restart from i == 1 Start
end

Online Examples

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 1..5
   retry if  i > 2
   puts "The value of the local variable is #{i}"
end

This will produce the following result 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
............................