Предыдущая часть – часть 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
Продолжение.