Latest web development tutorials

Ruby-Zyklus

Rubin in der Schleife für den gleichen Code-Block mehrmals durchgeführt wird. Dieser Abschnitt wird detailliert alle Schleifen Ruby-Unterstützung.

Ruby- while - Anweisung

Grammatik

while conditional [do]
   code
end

oder

<pre>
while conditional [:]
   code
end

Wenn dieBedingungwahr ist, führt erCode.

Oder Syntax: Sie können weggelassen werden. Aber um eine Formel, während in der Zeile schreiben, oder Sie tun müssen: Neben bedingter Ausdruck oder Programmblöcke.

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5

while $i < $num  do
   puts("在循环语句中 i = #$i" )
   $i +=1
end

Das obige Beispiel Ausgabe lautet:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4

Rubin, während Modifikator

Grammatik

code while condition

或者

begin 
  code 
end while conditional

Wenn dieBedingungwahr ist, führt erCode.

Wennwährendin einem Modifikator ohneRettungoder späterbeginnenAnweisungKlauselzugewährleisten,wird Code einmal vor dembedingtenUrteil ausgeführt werden.

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5
begin
   puts("在循环语句中 i = #$i" )
   $i +=1
end while $i < $num

Das obige Beispiel Ausgabe lautet:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4

Ruby- bis - Anweisungen

until conditional [do]
   code
end

Wenn diebedingtefalsch ist, Ausführen vonCode.

Syntax do kann entfallen. Aber bis die Formel schreiben, müssen Sie die Bedingungsausdruck oder Programmblöcke auseinander in der Reihe zu tun.

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5

until $i > $num  do
   puts("在循环语句中 i = #$i" )
   $i +=1;
end

Das obige Beispiel Ausgabe lautet:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
在循环语句中 i = 5

Rubinbis Modifikatoren

Grammatik

code until conditional

或者

begin
   code
end until conditional

Wenn diebedingtefalsch ist, Ausführen vonCode.

Wennbisjetzt in einer Erklärung Modifikator , dass keineRettungoder späterbeginnenKlausel zugewährleisten,wird Code einmal vor dembedingtenUrteil ausgeführt werden.

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5
begin
   puts("在循环语句中 i = #$i" )
   $i +=1;
end until $i > $num

Das obige Beispiel Ausgabe lautet:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
在循环语句中 i = 5

Ruby- for - Anweisung

Grammatik

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

Erste Berechnungsausdruck ein Objekt, dann denAusdruckfür jedes Element separat einenCodezuerhalten.

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   puts "局部变量的值为 #{i}"
end

Hier haben wir den Bereich 0..5 definiert. Statement für i in 0..5 den Wert von i von 0 bis 5 (mit 5) ermöglichen.

Das obige Beispiel Ausgabe lautet:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

für ... inSchleife fast genau entspricht:

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

Allerdings ist für die Schleife nicht einen neuen Bereich für lokale Variablen erstellen.

Syntax do kann entfallen. Aber für die Formel in einer Reihe zu schreiben, müssen Sie tun, außer bedingten Ausdruck oder Programmblöcke.

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

(0..5).each do |i|
   puts "局部变量的值为 #{i}"
end

Das obige Beispiel Ausgabe lautet:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

Ruby- break - Anweisung

Grammatik

break

Die Beendigung der innersten Schleife. Wenn Sie innerhalb des Blocks aufgerufen haben, wird der Block auf die Beendigung (die Methode gibt nil zurück) bezogen.

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i > 2 then
      break
   end
   puts "局部变量的值为 #{i}"
end

Das obige Beispiel Ausgabe lautet:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2

Rubinnächste Anweisung

Grammatik

next

Wechseln zu der nächsten Iteration der Schleife. Wenn Sie in den Bausteinaufruf beendet den Ausführungsblock(AusbeuteAusdruck nil).

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i < 2 then
      next
   end
   puts "局部变量的值为 #{i}"
end

Das obige Beispiel Ausgabe lautet:

局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

Ruby- Redo - Anweisung

Grammatik

redo

Ein Neustart des innersten Schleife Iteration wird die Schleifenbedingung nicht überprüft. Wenn Sie in den Block aufrufen, dann starten SieAusbeuteoderAnruf.

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i < 2 then
      puts "局部变量的值为 #{i}"
      redo
   end
end

Daraus ergeben sich die folgenden Ergebnisse, und wird eine Endlosschleife eingeben:

局部变量的值为 0
局部变量的值为 0
............................

Ruby- Retry - Anweisung

Hinweis: 1.9 und spätere Versionen unterstützen nicht die Verwendung Wiederholung in einer Schleife.

Grammatik

retry

WennWiederholungim Ausdruck beginnen rescue - Klausel erscheint, von Anfang des Körpers beginnen Start wieder zu.

begin
   do_something   # 抛出的异常
rescue
   # 处理错误
   retry          # 重新从 begin 开始
end

Wenn Neuversuch in der Iteration auftritt, oder zur Expression innerhalb des Körpers, erneut iteriert Anrufe innerhalb des Blocks. Iteration Parameter neu bewertet.

for i in 1..5
   retry if some_condition # 重新从 i == 1 开始
end

Beispiele

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 1..5
   retry if  i > 2
   puts "局部变量的值为 #{i}"
end

Daraus ergeben sich die folgenden Ergebnisse, und wird eine Endlosschleife eingeben:

局部变量的值为 1
局部变量的值为 2
局部变量的值为 1
局部变量的值为 2
局部变量的值为 1
局部变量的值为 2
............................