4.4. Instrukcje pętli
Scala posiada instrukcję pętli while oraz instrukcję pętli do. Obie zawierają słowo kluczowe while. Składnia obu instrukcji jest następująca:
- while (warunek) wyrażenie
- do wyrażenie while (warunek)
Obie konstrukcje są wyrażeniami zwracającymi wartość typu Unit. W obu z nich, naprzemiennie, dokonywana jest ewaluacja warunku logicznego i wyrażenia. Wyrażenie jest wykonywane cyklicznie tak długo, jak długo warunek będący wyrażeniem logicznym przyjmuje wartość true. Różnią się tym, że pierwsza konstrukcja rozpoczyna swoje wykonywanie od sprawdzenia warunku, a druga rozpoczyna od ewaluacji wyrażenia. W konsekwencji jest możliwe, że w przypadku pierwszej konstrukcji wyrażenie nie zostanie w ogóle wykonane, natomiast w drugim przypadku będzie zawsze wykonane przynajmniej raz.
Pętla while jest użyta w metodzie hello1, zdefiniowanej w pliku While1.scala.
Plik While1.scala: def hello1(n: Int) { var j = 0 while(j < n) { println("Hello!") j = j + 1 } }
W przypadku wywołania hello1 z wartością 0 lub mniejszą, metoda nie wypisuje żadnego komunikatu.
scala> :load While1.scala Loading While1.scala... hello1: (n: Int)Unit scala> hello1(-1) scala> hello1(0) scala> hello1(1) Hello! scala> hello1(2) Hello! Hello!
W pliku While2.scala zdefiniowana jest metoda hello2, w której treści użyta jest pętla do.
Plik While2.scala: def hello2(n: Int) { var j = 0 do { println("Hello!") j = j + 1 } while(j < n) }
Metoda hello2 wypisuje przynajmniej jeden komunikat niezależnie od wartości przekazanego argumentu.
scala> :load While2.scala Loading While2.scala... hello2: (n: Int)Unit scala> hello2(-1) Hello! scala> hello2(0) Hello! scala> hello2(1) Hello! scala> hello2(2) Hello! Hello!
Specyfikacja języka Scala opisuje pętlę while w punkcie 6.17, a pętlę do w punkcie 6.18. |