Предыдущая часть — часть 5 – операторы.
Содержание
Циклы в Groovy
До сих пор мы рассматривали операторы, которые выполняются один за другим, по очереди.
Кроме них — в Groovy представлены операторы циклов — while, for и for-in:
while— операторwhile выполняет проверку заданного условия, и выполняет код в цикле, если условие True.for— операторforиспользуется для итерации по набору значений.for-in— аналогично, см. ниже.
Так же имеются операторы для управления выполнением цикла:
break— используется для изменения выполнения циклов и оператораswitch.continue— дополняетbreak, но ограничен операторамиwhileиfor.
Оператор while
Синтаксис:
while(condition) {
statement #1
statement #2
...
}
Оператор while выполняет проверку заданного условия. Если результат True — выполняются операторы в теле цикла, после чего выполнение начинается заново — с проверки условия цикла, пока оно не вернёт False. В таком случае — выполнение цикла будет прервано, и выполнение программы будет передано следующему за циклому коду:
Пример while:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
int count = 0;
while(count<5) {
println(count);
count++;
}
}
}
Результат его выполнения:
$ ./example.groovy 0 1 2 3 4
Оператор for
Оператор for предназначен для выполнения цикла с набором данных.
Синтаксис:
for(variable declaration;expression;increment) {
statement #1
statement #2
…
}
Цикл for состоит из трёх основных частей:
- variable declaration — объявление переменной, используется только раз для объявления переменной, которая будет использоваться в цикле.
- expression — выражение, которое будет выполнено при каждой итерации цикла.
- increment — включает в себя операции по изменению значения объявленной переменной.
Пример:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
for(int i = 0;i<5;i++) {
println(i);
}
}
}
Резултат:
$ ./example.groovy 0 1 2 3 4
В этом примере цикл for выполняет три операции:
- объявляется переменная
iсо значением == 0; - указывается условное выражение, которое будет выполняться циклом, пока знаечние
iменьше 5; - при каждой итерации значение
iувеличивается на единицу.
Оператор for-in
Синтаксис:
for(variable in range) {
statement #1
statement #2
…
}
Пример:
#/usr/bin/env groovy
class Example {
static void main(String[] args) {
int[] array = [0,1,2,3];
for(int i in array) {
println(i);
}
}
}
В этом примере — сначала инициализируется массив array с 4-мя цифрами, после чего он передаётся циклу for, в котором инициализируется переменная i, через которую происходит итерация значений из массива array, и результат выводится на экран.
Кроме того — for-in можно использовать с диапазонами, например:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
for(int i in 1..5) {
println(i);
}
}
}
Результат:
$ ./example.groovy 1 2 3 4 5
И для работы с ассоциированными массивами (map в Groovy), например:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
def employee = ["Ken" : 21, "John" : 25, "Sally" : 22];
for(emp in employee) {
println(emp);
}
}
}
Результат:
$ ./example.groovy Ken=21 John=25 Sally=22
Оператор break
Оператор break используется для изменения выполнения циклов и оператора switch.
Пример:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
int[] array = [0,1,2,3];
for(int i in array) {
println(i);
if(i == 2)
break;
}
}
}
Результат:
$ ./example.groovy 0 1 2
Так как в цикле есть условие, по которому выполянется break в случае, если i == 2 — то последнее значение массива, 3, не выводится — цикл прерывается break.
Оператор continue
Оператор continue дополняет break, но его область применения ограничена операторами while и for.
При выполнении continue — управление передаётся к условию проверки в начале цикла, что бы определить — должен ли цикл продолжать своё выполнение, а все операторы в цикле, находящиеся после continue — игнорируются.
Пример:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
int[] array = [0,1,2,3];
for(int i in array) {
println(i);
if(i == 2)
continue;
}
}
}
Результат:
$ ./example.groovy 0 1 2 3
Продолжение — часть 7 – операторы ветвления if/else/switch.










15 246 views