JavaRush/Java блог/Random/Отличие использования нескольких операторов if() {} от ко...
Kirill Spirin
2 уровень

Отличие использования нескольких операторов if() {} от конструкции if() {} else if() {}.

Статья из группы Random
участников
На первых этапах изучения программирования на Java возникают некоторые вопросы. Конечно, мы все любим получать быстрые ответы! Если ты учишь Java у тебя есть преподаватель, ментор или товарищ, которому ты можешь адресовать этот вопрос - замечательно. Иначе приходится спрашивать об этом JavaRush и остальной интернет. При изучении ветвлений может возникнуть вопрос: Чем отличается использование несколько операторов if() {} от конструкции if() {} else if() {}. Не путать с конструкцией: if() {} else {}. О ней будет написано в конце статьи для справки. Рассмотрим два случая на простом примере, где number_bool - условия, action_number - действия: Первый:
if (first_bool) {action_1}
if (second_bool) {action_2}
...
if (last_bool) {action_last}
Второй:
if (first_bool) {action_1} else
if (second_bool) {action_2} else
... else
if (last_bool) {action_last}
Отличия в коде - минимальные, но выполнится код по разному! Это не взаимозаменяемые случаи! Чтобы понять в чем отличие напишем простую программу, определяющая величину числа, конечно, в двух вариантах: 1. Использование нескольких операторов if() {}:
class JustTest {
    public static void main (String [] args){

        int x = 7; // Наше искомое число

        if (x<5) {
            System.out.println("Less than 5");
        }
        if (x<10) {
            System.out.println("Less than 10");
        }

        if (x<15) {
            System.out.println("Less than 15");
        }

        if (x<20) {
            System.out.println("Less than 20");
        }
    }
}
2. Использование конструкции if() {} else if() {}:
class JustTest {
    public static void main (String [] args){

        int x = 7; // Наше искомое число

        if (x<5) {
            System.out.println("Less than 5");
        }else
        if (x<10) {
            System.out.println("Less than 10");
        } else

        if (x<15) {
            System.out.println("Less than 15");
        } else

        if (x<20) {
            System.out.println("Less than 20");
        }
    }
}
Результат программы с использованием нескольких операторов if() {}:
Less than 10
Less than 15
Less than 20
Результат программы с использованием конструкции if() {} else if() {}:
Less than 10
ВЫВОД: Данный пример наглядно показывает, что конструкции if() {} else if() {} позволяет создавать "цепочку условий", в которой выполнится только один блок кода в цепочке. Самые внимательные могут задать вопрос, выполнятся ли предшествующие "звенья" этой цепочки. Ответ: нет. Если заменить искомое число с 7 на, например, 11 – то результат выполнения программ будет иметь следующий вид: Результат программы с использованием нескольких операторов if() {}:
Less than 15
Less than 20
Результат программы с использованием конструкции if() {} else if() {}:
Less than 15
Справочно пару слов об конструкции if() {} else {}: В данном случае как видите имеется только одно условие, и в зависимости верно оно или ложно выполняется один из двух блоков кода:
class JustTest {
    public static void main (String [] args){

        int x = 11; // Наше искомое число

        if (x<5) {
            System.out.println("Less than 5");
        } else {
            System.out.println("More than 5");
        }
    }
}
Результат при искомом числе равном 11:
More than 5
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Bogdan Sharapov
Уровень 4
13 марта, 15:45
Не совсем ясно, для чего используются фигурные скобки в примере. По идее, при использовании конструкции if - else if - else if - else if все сработает и без них
ZloyLis
Уровень 58
13 марта, 23:30
Ну, например поэтому - Google Java Style Guide: "4.1.1 Use of optional braces Braces are used with if, else, for, do and while statements, even when the body is empty or contains only a single statement. Other optional braces, such as those in a lambda expression, remain optional." А вообще, лучше скобки ставить всегда - больше однозначности. меньше вероятности ошибки и больше шансов нормально с первого раза пройти код-ревью.
Kirill Spirin Java Developer
24 апреля, 15:20
Доброго времени суток! Фигурные скобки - блоки кода. Т.е. если Вам необходимо выполнить всего одно действие, то, конечно, Ваша программа скомпилируется. Однако, чаще всего в рабочих проектах требуется выполнить набор действий (блок кода). Тем не менее, лично я использую блоки кода даже если в них всего одна строчка кода - это значительно повышает читаемость кода. P.S. Комментатору выше отдельная благодарность! (@ZloyLis)