Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Основы Языка
Раздел: Операторы управления
Если тогда и Операторы, "если тогда еще"
Домашняя страница > Изучение Языка Java > Основы языка

Если тогда и Операторы, "если тогда еще"

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


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Операторы управления
Следующая страница: оператор переключения