Предыдущая часть — часть 6 – циклы.
В Groovy имеются операторы ветвления (или условные операторы), позволяющие менять ход выполнения программы.
Содержание
Оператор if
Самый используемый оператор — if.
Его синтаксис выглядит следующим образом:
if(condition) {
statement #1
statement #2
...
}
Оператор if проверяет условие (condition), и если оно True — выполняется выражение в блоке:
Пример использования оператора if:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
// Initializing a local variable
int a = 2
//Check for the boolean condition
if (a<100) {
//If the condition is true print the following statement
println("The value is less than 100");
}
}
}
В этом примере мы объявляем переменную a и присваем ей значение 2, после чего в блоке if проверяется условие и результат выводится на экран с помощью println:
$ ./example.groovy The value is less than 100
Оператор if/else
Его синтаксис выглядит так:
f(condition) {
statement #1
statement #2
...
} else{
statement #3
statement #4
}
Сначала проверяется условие в if. Если оно True — выполняются выражения до блока else. Если условие False — выполняются выражения из блока else, и цикл проверки завершается:
Пример кода с использованием if/else:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
// Initializing a local variable
int a = 2
//Check for the boolean condition
if (a<100) {
//If the condition is true print the following statement
println("The value is less than 100");
} else {
//If the condition is false print the following statement
println("The value is greater than 100");
}
}
}
Результат его выполнения:
$ ./example.groovy The value is less than 100
Кроме того — вы можете использовать вложенные блоки if/else, например:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
// Initializing a local variable
int a = 12
//Check for the boolean condition
if (a>100) {
//If the condition is true print the following statement
println("The value is less than 100");
} else
// Check if the value of a is greater than 5
if (a>5) {
//If the condition is true print the following statement
println("The value is greater than 5 and greater than 100");
} else {
//If the condition is false print the following statement
println("The value of a is less than 5");
}
}
}
Результат:
$ ./example.groovy The value is greater than 5 and greater than 100
Оператор switch
Кроме if/else — вы можете использовать конструкцию switch, которая вылядит следующим образом:
switch(expression) {
case expression #1:
statement #1
...
case expression #2:
statement #2
...
case expression #N:
statement #N
...
default:
statement #Default
...
}
Тут — проверяется выражение, переданное оператору switch, после чего — с помощью оператора case выполняется проверка его значения, и выполняются выражения из этого блока.
Так же — тут можно использовать оператор break, что бы прервать выполнение цикла, как только будет найдено соответствие между case и значением из switch. Вы можете использовать инструкцию default, что бы определить действие по умолчанию, если ни один из вариантов не сработал.
Вот так выглядит диаграмма работы switch:
И пример кода:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
//initializing a local variable
int a = 2
//Evaluating the expression value
switch(a) {
//There is case statement defined for 4 cases
// Each case statement section has a break condition to exit the loop
case 1:
println("The value of a is One");
break;
case 2:
println("The value of a is Two");
break;
case 3:
println("The value of a is Three");
break;
case 4:
println("The value of a is Four");
break;
default:
println("The value is unknown");
break;
}
}
}
Результат его выполнения:
$ ./example.groovy The value of a is Two
Как и в случае с оператором if — вы можете использовать вложенные конструкции для switch, например:
#!/usr/bin/env groovy
class Example {
static void main(String[] args) {
//Initializing 2 variables i and j
int i = 0;
int j = 1;
// First evaluating the value of variable i
switch(i) {
case 0:
// Next evaluating the value of variable j
switch(j) {
case 0:
println("i is 0, j is 0");
break;
case 1:
println("i is 0, j is 1");
break;
// The default condition for the inner switch statement
default:
println("nested default case!!");
}
break;
// The default condition for the outer switch statement
default:
println("No matching case found!!");
}
}
}
Результат:
$ ./example.groovy i is 0, j is 1
Продолжение.








22 984 views