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
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Bogdan Sharapov Уровень 4
13 марта 2024
Не совсем ясно, для чего используются фигурные скобки в примере. По идее, при использовании конструкции if - else if - else if - else if все сработает и без них