Управляющие структуры
Не позволяйте имени пугать вас; управляющие структуры не так сложны, как кажутся! Обе простые программы и все примеры, которые мы видели до сих пор, имели одну общую черту: они выполнялись по прямой линии, оператор за раз, сверху вниз. Проще говоря, управляющие структуры позволяют вам вырваться из этой прямой формы, позволяя вашим программам по-разному реагировать на различные условия и сохраняя при этом некоторую печать при выполнении повторяющихся задач.
Давайте начнем с самой базовой структуры управления, оператора if
:
if (condition) statement;
Если condition
statement
Если нет, то ничего не происходит, и Java просто переходит к следующей строке программы. Вот простой пример:
// Check if a and b are equal
boolean abEqual = (a == b);
if (abEqual) System.out.println("a and b are equal!");
Это практическое применение операторов сравнения, которые я обещал выше! Первая строка выше (после комментария) проверяет, равны лиa
b
Если это так,abEqual
Если нет, тоabEqual
Во второй строке у нас есть операторif
abEqual
Как вы можете видеть, еслиa
b
abEqual
Если нет (аabEqual
Поскольку большинство условий используются только один раз, чаще вводить условное выражение непосредственно в операторе
if
Вот как обычно выглядит приведенный выше пример:
// Check if a and b are equal
if (a == b) System.out.println("a and b are equal!");
Как всегда, используйте тот метод, который вам удобнее всего. Вот еще несколько примеров операторов сравнения в действии как часть операторовif
if (a > b) System.out.println("a is greater than b");
if (a < b) System.out.println("a is less than b");
if (a >= b) System.out.println("a is greater than or equal to b.");
if (a <= b) System.out.println("a is less than or equal to b.");
if (a != b) System.out.println("a does not equal b");
Вместо одного оператора вы можете указать целый ряд операторов, которые должны выполняться, если условие выполняется. Вы делаете это, помещая выражения в скобки:
if (userIsKevin) {
System.out.println("Hi, Kevin!");
// ... more statements here ...
}
Если вы хотите что-то сделать, когда условие ложно, а не когда оно истинно, есть удобный ярлык, который вы можете использовать. Вот как может выглядеть код без использования ярлыка:
// Print message when myCondition is false
if (myCondition == false) {
System.out.println("myCondition is false!");
}
Оператор ==
!=
boolean
В результате вышеприведенное условие будет истинным, если myCondition
myCondition
Я упомянул ярлык, который называется оператором отрицания . Поместив этот оператор ( !
Таким образом, приведенный выше пример можно было бы записать проще:
// Print message when myCondition is false
if (!myCondition) {
System.out.println("myCondition is false!");
}
Если myCondition
!
оператор приведет к тому, что условие будет оценено как ложное, поэтому сообщение не будет напечатано. Если myCondition
!
переводит значение выражения в true, и сообщение действительно печатается. Важно отметить, что !
оператор фактически не меняет значение, которое хранится в myCondition
он просто изменяет значение условия для целей оператора if
Другая структура управления, связанная с оператором if, — это оператор if-else
:
if (condition) {
// statements to be executed if condition is true
}
else {
// statements to be executed if condition is false
}
В этом случае будет выполнена одна группа операторов или другая. Условие определяет какой. Каждый из заключенных в скобки наборов утверждений может также быть одним утверждением. Фактически, используя другой оператор if-else
if (condition1) {
// do this if condition1 is true
} else if (condition2) {
// do this if condition2 is true
} else if (condition3) {
// do this if condition3 is true
} else {
// do this only if none of the conditions is true
}
На первый взгляд, эта структура кода может быть немного ошеломляющей, но чтение ее вслух помогает сделать ее работу достаточно очевидной. Вот код выше, как это может быть выражено на английском языке:
Если
condition1
В противном случае, еслиcondition2
В противном случае, еслиcondition3
В противном случае выполните последний блок операторов.
Остальные управляющие структуры, о которых я расскажу в этой статье, связаны с тем, чтобы ваша программа выполняла одну и ту же операцию несколько раз без необходимости вводить команды для этой операции снова и снова. Эти структуры обычно называются петлями .