Условные операторы в Java
Last updated: 2 мая 2025 г.Итак, как же эти выражения с операторами, которые мы изучили можно использовать?
Например, в операторе сравнения if...else
.
Им можно проверить возвращает ли какое-либо выражение true и если возвращает, то выполнить какие-то операции.
Поясним на примере.
1class Test
2{
3 public static void main(String []args)
4 {
5 int a=31, b=15;
6 //if это на русском ЕСЛИ.
7 //Если проговорить код ниже то будет:
8 //"ЕСЛИ а больше чем b то выполняется код в {} после if".
9 if(a>b)
10 {
11 System.out.println("a>b returned true");
12 }
13 //else означает ИНАЧЕ.
14 //Если проговорить код ниже то будет:
15 //"ИНАЧЕ выполняется код в {} после else".
16 //Имеется ввиду ИНАЧЕ от того что было
17 //в круглых скобочках у if.
18 //То есть то что в фигурных скобочках после else
19 //выполняется если выражение a>b вернуло false,
20 //если же a>b вернуло true и был выполнен код
21 //в фигурных скобочках у if то код в фигурных
22 //скобочках у else ясное дело выполнен не будет.
23 else
24 {
25 System.out.println("a>b returned false");
26 }
27 //Выполниться то что в фигурных скобочках
28 //у if так как a>b возвращает true.
29 //То есть как видим можно писать блоки кода,
30 //которые выполняются только по какому-то условию.
31 }
32};
Вывод:

В примере if…else оператора, ниже выполниться то, что в фигурных скобочках после else, так как выражение a<b возвращает ложь.
1class Test
2{
3 public static void main(String []args)
4 {
5 int a = 31, b = 15;
6 if (a < b) {
7 System.out.println("a < b returned true");
8 }
9 }
10};
Вывод:

if можно писать отдельно от else и если то, что в круглых скобочках ложно то ничего не произойдет, так как у нас уже нет блока else.
Вывод:

Программа с условными операторами
Также есть else if (...) {...}
. Его можно писать много раз для дополнительных проверок.
Пример программы:
1class Test
2{
3 public static void main(String []args)
4 {
5 int a=31, b=15;
6 // Если код в {} после if(a < b) не выполнялся,
7 // то есть a < b возвращает false,
8 if(a < b){
9 System.out.println("a < b returned true");
10 }
11 // то выполняется проверка условия в else if ниже
12 // и если a==b возвращает true, то выполняется код
13 // в {} после else if(a==b) и все проверки далее
14 // совершаться не будут, то есть произойдет переход к коду
15 // после проверок, то есть к строчке:
16 // System.out.println("The end of the program");
17 // Если же a==b возвращает false
18 else if(a==b){
19 System.out.println("a < b returned false, but a==b "
20 + "returned true");
21 }
22 // то выполняется проверка условия в else if ниже
23 // и если a>b возвращает true, то выполняется код
24 // в {} после else if(a > b) и все проверки далее
25 // совершаться не будут, то есть произойдет переход к коду
26 // после проверок, то есть к строчке:
27 // System.out.println("The end of the program");
28 // Если же a > b возвращает false
29 else if(a > b){
30 System.out.println("a < b returned false, a==b "
31 + "returned false, but a > b returned true");
32 }
33 // то выполняется код в {} после else
34 else{
35 System.out.println("a < b returned false, a==b returned false"
36 + " so lets return something in else block");
37 }
38 System.out.println("The end of the program");
39 // Выполнится то, что в фигурных скобках у else if(a>b),
40 // так как a > b возвращает true.
41 }
42};
Вывод:

Как уже было замечено, если бы, например, a==b возвращал true в программе выше, то все другие проверки else if после else if(a==b) не совершались бы и блок else тоже не выполнился бы.
В этом смысл else if. Если бы мы написали вместо всех else if в программе просто if, то если бы a==b был true, то код в скобочках {} этого условия бы выполнился, но проверки условий в if-ах дальше бы продолжались.
То есть смысл в том, что из всех else if будет выполнен только один и если какой-то else if выполнился, то все остальные проверки else if за ним совершаться не будут.
Программа с условными операторами
Также часто вместо if…else используют switch case
.
Давайте для начала приведем if else версию, а потом ее switch case аналог, который делает то же самое.
Пример программы:
1class Test
2{
3 public static void main(String []args)
4 {
5 int a=31, b=15;
6 //если a+b равняется 35
7 if(a+b==35)
8 {
9 //то выполняется то что здесь
10 System.out.println("a+b equals to 35");
11 }
12 //если a+b равняется 46
13 else if(a+b==46)
14 {
15 //то выполняется то что здесь
16 System.out.println("a+b equals to 46");
17 }
18 //если a+b равняется 42
19 else if(a+b==42)
20 {
21 //то выполняется то что здесь
22 System.out.println("a+b equals to 42");
23 }
24 //если все условия выше оказались false
25 else {
26 //то выполняется то что здесь
27 System.out.println("lets return somethong " + "in else block");
28 }
29 }
30};
Вывод:

Ниже switch case версия, которая выполняет то же самое, что if версия выше.
Поочередно проверяются числа рядом с case-ами на предмет равенства результату выражения в скобочках рядом со switch и если в программе ниже, например, число 42 окажется равным результату выражения a+b, то выполниться код между case 42: и break;.
Пример программы:
1class Test
2{
3 public static void main(String []args)
4 {
5 int a=31, b=15;
6 switch (a+b) {
7 case 35: //если a+b равняется 35
8 System.out.println("a+b equals to 35");
9 break;
10 case 46:
11 System.out.println("a+b equals to 46");
12 break;
13 case 42:
14 System.out.println("a+b equals to 42");
15 break;
16 default: //default аналог else
17 System.out.println("lets return somethong in default block");
18 }
19 }
20};
Вывод:

Но чаще, всё таки, используют if…else.
Следующие уроки
Циклы в Java
10
мин.
Ключевые слова break, continue
6
мин.
Массивы в Java
11
мин.