На первых этапах изучения программирования на 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