2.2 KiB
Schleifen
While-Schleife
Syntax Kopfgesteuerte while-Schleife
def y = 0
while (y < 5){
print(y + " ") // Ausgabe: 1 2 3 4
y++
}
for-Schleife
Syntax der for-Schleife
wie in Java
for (int i = 0; i < 5; i++){
print(i + " ") // Ausgabe: 1 2 3 4
}
times()-Schleife:
In Groovy besitzen Zahlen die Methode n.times()
. Sie bekommt ein Closure als Parameter und führt die übergebene Methode n-mal aus. Man kann den Variablen innerhalb der Closure Namen geben, kann es jedoch auch sein lassen. Gibt man den Variablen keinen Namen, wird der Name it benutzt.
5.times {def e -> print e + " "} // Ausgabe: 0 1 2 3 4
5.times {println it + " "} // Ausgabe: 0 1 2 3 4
each()-Schleife:
Man kann über Elemente von Collections iterieren, indem man die collection .each()
Methode benutzt. Sie bekommt ein Closure als Parameter und wendet den Ausdruck auf alle Elemente der Liste an.
def map = [name: "Thomas", nachname: "Smits"]
map.each {key, value -> println "$key: $value"} // Ausgabe: name: Thomas nachname: Smits
for-in Schleife
for (variable in iterable) {body}
Die for-in Schleife
folgt dieser einfachen Struktur. Sie durchläuft das Objekt iterable
. Häufig verwendete Iterables sind Ranges, Collections, Maps, Arrays, Iterators und Enumerationen. Jedes Objekt kann ein Groovy ein Iterable sein. Klammern um den Body sind optinal, wenn er nur aus einer Anweisung besteht.
Im Folgenden Beispiele für Iterationen:
Über Ranges:
for (i in 0..5){
print(i + " ") // Ausgabe: 1 2 3 4 5
}
for (i in 'a'..<'d'){
print(i + " ") // Ausgabe: letzter Buchstabe exklusiv
}
Über eine Liste:
def list = [1, 2, 3, 4, 5]
for (element in list){
print element + " " // Ausgabe: 1 2 3 4 5
}
über eine Array:
def arr = ['a', 'b', 'c']
for (ch in arr){
print (ch + " ") // Ausgabe: a b c
}
Über eine Map:
def map = [name: "Alice", age: 18]
for (entry in map){
print(${entry.key}: ${entry.value}) // Ausgabe: name: Alice age: 18
}
Über eine Zeichenfolge:
def text = "Groovy"
for (ch in text){
print(ch + " ") // Ausgabe: G r o o v y
}