|
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';) и остающиеся условия не оцениваются.