Programy komputerowe często muszą wykonywać działania kilka razy, a nie tylko raz. Na przykład program, który drukuje wszystkie nowe wiadomości e-mail, będzie musiał wydrukować każdy e-mail z listy, a nie tylko z jednego e-maila. Aby to zrobić, używa się konstrukcji zwanych pętlami. Pętla powtórzy sprawozdania w nim wiele razy, aż spełniony zostanie jakiś warunek.
Podczas gdy pętle
Pierwszy typ tych pętli to pętla while. Podczas gdy pętle wykonają wszystkie zawarte w nich instrukcje, o ile instrukcja warunkowa pozostanie prawdziwa. W tym przykładzie pętla stale zwiększa wartość zmiennej ja po jednym. Tak długo jak instrukcja warunkowa i <10 jest prawdą, pętla będzie kontynuować wykonywanie instrukcji i + = 1 który dodaje jeden do zmiennej.
#! / usr / bin / env ruby
i = 0
podczas gdy ja <10
i + = 1
koniec
stawia ja
Aż do pętli
Do momentu, gdy pętle będą prawie identyczne jak pętle while, z tym wyjątkiem, że będą pętli tak długo, jak długo będzie instrukcja warunkowa fałszywy. Pętla while zapętla się, gdy warunek jest spełniony, pętla till zapętla się
aż do warunek jest spełniony. Ten przykład jest funkcjonalnym odpowiednikiem przykładu pętli while, z wyjątkiem użycia pętli till, aż i == 10 . Zmienna jest zwiększana o jeden, dopóki jej wartość nie wyniesie dziesięciu.#! / usr / bin / env ruby
i = 0
aż i == 10
i + = 1
koniec
stawia ja
Zapętla „Drogę Rubinową”
Chociaż w programach Ruby stosuje się bardziej tradycyjne pętle „do czasu i do”, bardziej popularne są pętle oparte na zamknięciu. Nie jest nawet konieczne zrozumienie, czym są zamknięcia i jak działają, aby korzystać z tych pętli; w rzeczywistości są one postrzegane jako normalne pętle, mimo że są bardzo różne pod maską.
Pętla Timesa
The czasy Pętla może być używana w dowolnej zmiennej zawierającej liczbę lub używana w samej liczbie. W poniższym przykładzie pierwsza pętla jest uruchamiana 3 razy, a druga pętla jest uruchamiana, jednak użytkownik wiele razy wprowadza ją. Jeśli wpiszesz 12, uruchomi się 12 razy. Zauważysz, że pętla czasu używa kropki składnia (3. razy tak) zamiast składni słowa kluczowego używanej przez pętlę while i till. Ma to związek z tym, jak pętla czasu działa pod maską, ale jest używana w taki sam sposób przez pewien czas lub do momentu użycia pętli.
#! / usr / bin / env ruby
3. razy
wstawia „Zostanie wydrukowany 3 razy”
koniec
drukuj „Wprowadź liczbę:”
num = gets.chomp.to_i
liczba razy to zrobić
mówi „Ruby jest świetny!”
koniec
Każda pętla
The każdy Pętla jest prawdopodobnie najbardziej przydatną ze wszystkich pętli. Każda pętla pobiera listę zmiennych i uruchamia blok instrukcji dla każdej z nich. Ponieważ prawie wszystkie zadania komputerowe korzystają z list zmiennych i muszą coś zrobić z każdym z nich na liście, każda pętla jest zdecydowanie najczęstszą pętlą w Kod ruby. Należy tutaj zwrócić uwagę na argument bloku instrukcji pętli. Wartość bieżącej zmiennej, na którą patrzy pętla, jest przypisana do nazwy zmiennej w znakach potoku, czyli | n | w przykładzie Przy pierwszym uruchomieniu pętli n zmienna będzie równa „Fred”, przy drugim uruchomieniu pętli będzie równa „Bob” i tak dalej.
#! / usr / bin / env ruby
# Lista nazwisk
names = [„Fred”, „Bob”, „Jim”]
names.each do | n |
wstawia „Hello # {n}”
koniec