Условный оператор if в Java
Линейный алгоритм выполняет каждый оператор по порядку — сверху вниз. Операторы выполняются от пункта «А» к пункту «Б». В конце выдается результат программы. Чтобы написать сложную программу, потребуется огромное количество строчек кода и написание повторяющихся конструкций. Независимо от того вводит пользователь данные, или нет — программа выполнится по одному сценарию.
Но, если программу разделить на сценарии (блоки кода, которые будут выполняться при определенных условиях), то можно расширить функции приложения и урезать величину кода.
Условные конструкции позволяют создать несколько потоков выполнения алгоритма (сценариев). Если алгоритм подошел к разделению сценария (условной конструкции), то в зависимости от условия будет выполняться тот или иной блок кода. Затем программа продолжит выполняться дальше.
Операторы if, else, else if
Оператор if(если) определяет условие и если оно верно, то выполняется один блок кода. Оператор else(в ином случае)выполняет другой блок кода если условие не соблюдено.
Синтаксис условной конструкции следующий: if(true){блок кода…}
- Здесь if — оператор условия.
- (true) — в скобках может быть любое выражение, которое возвращает true или false.
- {} — если условие true, тогда выполняется блок операторов. Если false, то команды блока не выполняются.
Пример c if():
int a = 5;
int b = 5;
int c = a+b;
if(c == 10){ // true
System.out.println(«Условие true, выполняется этот блок кода»);
}
// Выполнение дальнейших операторов
Более сложная конструкция: if(true){блок кода…}else{блок кода}
Пример с if else:
int s = 6;
int z = 6;
int v = s+z;
if(v == 6){ // false
System.out.println(«Условие false, этот блок кода не будет выполняться»);
}else{
System.out.println(«Этот блок кода выполнится»)
}
// Выполнение дальнейших операторов
Несколько условий выглядят так: if(){}else if(){}else
Пример с else if:
int a = 5;
int b = 5;
int c = a+b;
if(c == 6){ //false
System.out.println(«Условие false, этот блок кода пропускается»);
}else if(c == 10){ //true
System.out.println(«Эта часть операторов выполнится»)
}else{
System.out.println(«Эта часть кода пропускается»)
}
// Далее будут выполняться остальные операторы кода
Стоит отметить, что если в блоках условных конструкций предусмотрена лишь одна инструкция, то фигурные скобки можно не писать.
Пример без скобок:
int t = 2;
int r = 2;
int p = t+r;
if(p == 5) System.out.println(«Условие false, эта часть будет пропущена»);
else if(p == 4) System.out.println(«Выполняется этот блок кода»)
else System.out.println(»Пропускается»)
// Остальные инструкции
Вложенные условия
Вложенные условия — это одно или несколько условий в основном условии. Самая простая конструкция выглядит так: if(){if(){}}else
Пример:
int o = 3;
int n = 3;
int l = o+n;
if(l == 6){ //true
if(o==3){ //true
System.out.println(«Субусловие выполнилось – этот оператор выполнится»)
}
System.out.println(«Условие true, и этот оператор выполнится»);
}else{
System.out.println(«Этот блок кода пропускается»);
}
// Остальной алгоритм
Если бы субусловие было бы ложно, то выполнился бы оператор основного условия. В нашем случае субусловие true. Значит, выполнится два оператора: основного условия и субусловия.
Оператор выбора switch
Оператор switch представляет альтернативу условным конструкциям и упрощает написание разветвленных алгоритмов с большим количеством условий.
Синтаксис switch:
switch(условие){
case результат условия:
операторы
break;
case другой результат:
операторы
break;
default:
операторы
}
Здесь условие может возвращать как логическое так и другое значение. Если результат выражения соответствует данным, написанным в case, то будут выполняться операторы текущего case. Если не один case не отвечает условию, то будут выполняться операторы в разделе default. После этого основной алгоритм продолжит выполнение.
Пример:
int a = 5;
int b = 5;
int c = a+b;
switch(c){ // переменная с равна 10
case 5:
System.out.println(«Пропускается»);
break;
case 3:
System.out.println(«Пропускается»);
break;
case 10:
System.out.println(«Выполнится»);
break;
default:
System.out.println(«Пропускается»);
}
Стоит отметить, что оператор break ставится в каждом case. Если его не ставить, то после выполнения определенного case, будут выполняться и остальные. Оператор break исключает эту особенность конструкции и выводит компилятор из switch в основной поток.
Тернарные операторы
Тернарные операторы «?», «:» используются для сокращенной записи if else.
Пример:
int f = 1;
int d = 1;
int c = f+d;
int t = c==2 ? c+d : f*d;
Пояснение:
Выражение c==2 является условием.
Если оно true, то t = с+d;
Если ложно, то t = f*d.
Здесь знак «?» является аналогией оператору if. Знак «:» аналогией оператору else. Как видно такая конструкция помещается в одну строчку, не требует фигурных скобок. Однако не рекомендуется выстраивать из нее сложные условные конструкции, так как значительно снижается читабельность такого кода. Также такая конструкция подходит, когда в блоках условий предусмотрено лишь по одному оператору.