Wenn Sie eine while-Schleife in Ruby zu erstellen , sind Sie im Wesentlichen sagen ", während X wahr ist, tun Y " oder sogar " bis X falsch ist, tun Y. " Programmierer erstellen eine while-Schleife in Ruby in Situationen, in denen sie einen Code-Block in einer Schleife , solange eine bestimmte Bedingung erfüllt ist wollen . Es gibt auch eine umgekehrte Funktion , die bis Schleife, die ausgeführt werden, bis die bedingte wahr ausgewertet wird . Sobald die Bedingung erfüllt ist , die Schleife bis enden wird. Anleitung
Erstellen einer While-Schleife
1
erstellen bedingte Anweisung , wie zum Beispiel: i = 10while i> 0
2
bestimmen, wie lange die Schleife laufen . Dies kann manchmal beinhaltet die Einrichtung einer Variable außerhalb der while-Schleife , um seine Fortschritte zu verfolgen . In diesem Beispiel wird die while-Schleife verwendet, um aus der Variablen "i" subtrahieren : i = 10while i> 0 # Code-Block enthält Subtraktion hinzugefügt werden hereend
3
Erstellen des Blocks . Der Baustein ist ein Stück Code, der jedes Mal, wenn die Schleife laufen ausgeführt wird . In den meisten Fällen wird der Block modifiziert auch die Bedingung. In diesem Beispiel ist es die Absicht, von der variablen subtrahieren "i ". Diese Schleife liest Zahlen von der Tastatur und subtrahiert sie von "i ". Aufgrund der bedingten Anweisung in der while-Schleife , wenn am Ende der Schleife "i" ist 0 oder niedriger , wird die Schleife zu beenden : i = 10while i> 0i = i - gets.chomp.to_iputs "i ist jetzt # {i} "end
erstellen Until-Schleife
4
Wählen Sie eine while-Schleife .
5
Ersetzen ", während " mit " bis " . Obwohl bis dient dem gleichen Zweck wie während im vorherigen Beispiel wäre nichts geschehen , als ich wertet > 0 auf true , sobald die Schleife ausgeführt wird. Dies bedeutet, der Block wird nicht einmal auszuführen. Doch in einigen Fällen ist es klarer.
6
Betrachten Sie die folgenden zwei Beispiele. Mit bis ein prägnanter Weise der Rücksendung der result.1 . zwar nicht is_ready () wait_until_ready () end2 . bis is_ready () wait_until_ready () end