Spec-Zone .ru
спецификации, руководства, описания, API
|
if-then
Оператор if-then
оператор является самым основным из всех операторов управления. Это говорит Вашей программе выполнять определенный раздел кода, только если определенный тест оценивает к true
. Например, Bicycle
class мог позволить тормозам уменьшать скорость велосипеда, только если велосипед уже находится в движении. Одна возможная реализация applyBrakes
метод мог быть следующие:
void applyBrakes() { // the "if" clause: bicycle must be moving if (isMoving){ // the "then" clause: decrease current speed currentSpeed--; } }
Если этот тест оценивает к false
(подразумевать, что велосипед не находится в движении), переходы управления до конца if-then
оператор.
Кроме того, открытие и закрывающие фигурные скобки являются дополнительными, при условии, что "тогда" пункт содержит только один оператор:
void applyBrakes() { // same as above, but without braces if (isMoving) currentSpeed--; }
Решение, когда опустить фигурные скобки, является вопросом персонального вкуса. Исключение их может сделать код более хрупким. Если бы второй оператор позже добавляется к "тогда" пункт, частая ошибка забыла бы добавлять недавно необходимые фигурные скобки. Компилятор не может поймать этот вид ошибки; Вы только получите неправильные результаты.
if-then-else
Оператор if-then-else
оператор обеспечивает вторичный путь выполнения, когда, "если" пункт оценивает к false
. Вы могли использовать if-then-else
оператор в applyBrakes
метод, чтобы предпринять некоторые меры, если тормоза применяются, когда велосипед не находится в движении. В этом случае действие должно просто напечатать сообщение об ошибке, утверждая, что велосипед уже остановился.
void applyBrakes() { if (isMoving) { currentSpeed--; } else { System.err.println("The bicycle has " + "already stopped!"); } }
Следующая программа, IfElseDemo
, присваивает класс, основанный на значении экзаменационной отметки: для счета 90 % или выше, B для счета 80 % или выше, и так далее.
class IfElseDemo { public static void main(String[] args) { int testscore = 76; char grade; if (testscore >= 90) { grade = 'A'; } else if (testscore >= 80) { grade = 'B'; } else if (testscore >= 70) { grade = 'C'; } else if (testscore >= 60) { grade = 'D'; } else { grade = 'F'; } System.out.println("Grade = " + grade); } }
Вывод из программы:
Grade = C
Вы, возможно, заметили что значение testscore
может удовлетворить больше чем одно выражение в составном операторе: 76 >= 70
и 76 >= 60
. Однако, как только условие удовлетворяется, соответствующие операторы выполняются (grade = 'C';)
и остающиеся условия не оцениваются.