Оператор if.
«Если верно условие,
то сделай так»
Оператор if позволяет программе действовать по-разному в разных условиях — это основа всех программ без исключения. Если пользователь ввел одни данные, то действовать так-то, а если другие — то по-другому. Логические условия в if могут быть и более сложными, например, «если верно то и при этом не верно другое, тогда . »
Оператор if устроен очень просто. Вы можете в программе сказать:
if ( x > 90 ) < System.out.println (“Ura!”); >// Если x > 90, то начало // Печатай «Ура!» // конец // После if программа продолжится
Общий вид оператора:
if (УСЛОВИЕ) КОД; >
То есть после if в круглых скобках идет какое-то логическое условие – если оно верно, то выполнится код в фигурных скобках после if, а если нет – то не выполнится. После этого программа в любом случае продолжит выполняться уже после if. Это очень удобный и могучий оператор, ведь теперь мы можем писать «если пользователь ввёл 1, то выполнить одно, а если ввел 2, то другое». То есть программа начинает как бы размышлять, что ей сделать. Она лишь выполняет оператор if, но кажется, что она сама решает, что ей делать.
Есть ещё расширенный вариант этого же оператора if-else:
if ( x > 90 ) < // Если x >90, то System.out.println ("Yes!"); // Печатай «Да!» > else < // иначе System.out.println ("Something else"); // Печатай «Другое!» >
И еще один вариант «если верно, то одно, иначе если верно другое, то другое, во всех остальных случаях — третье»:
if ( x > 90 ) < // Если x >90, то System.out.println ("Yes!"); // Печатай «Да!» > else if (x < 50) < // иначе если x < 50, то System.out.println ("No!"); // Печатай «Нет!» >else < // иначе System.out.println ("Smth"); // Печатай «Другое!» >
Общий вид оператора с дополнительной вставкой else-if:
if (УСЛОВИЕ)
КОД ;
> else if (ДРУГОЕ УСЛОВИЕ)
КОД ;
> else
КОД ;
>
Можно использовать просто «если», то есть if. Можно в паре «если-иначе», то есть if-else, когда есть только одно условие в if и в противном случае выполнится код в else. Можно использовать самый широкий вариант и добавлять сколько угодно условий с помощью одного или нескольких операторов else if.
Сами условия могут быть разными, главные 4 такие:
Оператор; Пример
Меньше < ; if (x < 90) < … >Больше > ; if (x > 150) < … >сравнение на равенство ; if (x == 120) < … >«НЕ равно» воскл. знак ! ; if (x != 120) < … >
Также можно использовать:
Оператор; Пример
Меньше либо равно Больше либо равно >= ; if (x >= 150)
// Если после if идет всего одна строчка кода, // то можно не брать её в фигурные скобки. // Она отделяется от else и от остального кода просто точкой с запятой. // Например так: if (x == 5) System.out.println ("Икс был равен 5"); else System.out.println ("Икс не был равен 5");
Логические условия можно комбинировать с использованием «если одновременно верно И то, И другое, делай» — обозначается &&. А также если «ИЛИ верно одно, ИЛИ верно другое, хотя бы одно из них, то делай» — обозначается ||. Первый оператор && называется «логическое И», второй оператор || называется «логическое ИЛИ».
Определение. Выражение A && B равно правде (true), если одновременно A и B равны правде. Если хотя бы одно из условий равно лжи (false), то всё выражение равно лжи. Читается как «одновременно верно и условие A, и условие B». Поэтому его называют «логическое И».
Определение. Выражение A || B равно правде (true), если хотя бы одно из условий — A или B равно правде. Только если оба условия равны лжи (false), то всё выражение равно лжи. Читается как «верно хотя бы одно условие — А или B». Поэтому его называют «логическое ИЛИ».
Условные операторы в Java: if-else, switch и «Элвис»
Прокатимся по ключевым операторам выбора в языке программирования Джава, начиная if-else и заканчивая обновлённым switch в Java 12.
Чтобы эффективно работать с условными операторами на языке Java, необходимо знать, какими они бывают и для каких сценариев подходят. Обсудим это и некоторые нововведения из Java 13.
Условный оператор if
Оператор if позволяет задать условие, в соответствии с которым дальнейшая часть программы может быть выполнена. Это основной оператор выбора, который используется в языке Java. Он начинается с ключевого слова if и продолжается булевым выражением — условием, заключённым в круглые скобки.
В качестве примера рассмотрим простое равенство, при истинности которого программа выведет результат:
if(2 * 2 == 4)
Поскольку условие истинно, в выводе программы мы увидим:
Программа выполняется
Условный оператор if-else в Java
else в языке Java означает «в ином случае». То есть если условие if не является истинным, выводится то, что в блоке else :
if(2 * 2 == 5) < System.out.println("Программа выполняется"); >else
Условие ошибочно
Это же сработает и без ключевого слова else , но чтобы код был читабельным и логичным, не следует пренебрегать else , как это сделано в следующем примере:
if(2 * 2 == 5) < System.out.println("Программа выполняется"); >System.out.println("Условие ошибочно");
А теперь давайте создадим несколько условий с использованием конструкции if-else . Выглядит это таким образом:
int a = 20; if(a == 10) < System.out.println("a = 10"); >else if(a == 15) < System.out.println("a = 15"); >else if(a == 20) < System.out.println("a = 20"); >else
a = 20
Как видим, только третье условие истинно, поэтому выводится именно a = 20 , а все остальные блоки игнорируются.
Вложенный if
Кроме того, может производиться проверка сразу на несколько условий, в соответствии с которыми выполняются разные действия. Представим, что у нас есть две переменные, на основе которых можно создать два условия:
int a = 20; int b = 5; if(a == 20) < System.out.println("a = 20"); if(b == 5)< System.out.println("b = 5"); >>
a = 20 b = 5
В результате программа заходит в оба блока и делает два вывода, потому как оба условия истинны.
«Элвис»
По сути, это сокращенный вариант if-else . Элвисом его прозвали за конструкцию, которая напоминает причёску короля рок-н-ролла — ?: . Данный оператор также принято называть тернарным. Он требует три операнда и позволяет писать меньше кода для простых условий.
Само выражение будет выглядеть следующим образом:
int a = 20; int b = 5; String answer = (a > b) ? "Условие верно" : "Условие ошибочно"; System.out.println(answer);
Условие верно
Как видите, с помощью тернарного оператора можно существенно сократить код. Но не стоит им злоупотреблять: для сложных условий используйте другие операторы выбора Java, дабы не ухудшать читаемость кода.
Условный оператор switch в Java
Оператор выбора switch позволяет сравнивать переменную как с одним, так и с несколькими значениями. Общая форма написания выглядит следующим образом:
switch(выражение) < case значение1: // Блок кода 1 break; case значение2: // Блок кода 2 break; case значениеN: // Блок кода N break; default : // Блок кода для default >
Рассмотрим распространённый пример с днями недели:
public class Main < //Создадим простое перечисление дней недели private static enum DayOTheWeek< MON, TUE, WED, THU, FRI, SAT, SUN >public static void main(String[] args) < //Выбираем понедельник (MON) var dayOfTheWeek= DayOTheWeek.MON; switch (dayOfTheWeek)< case MON: System.out.println("Понедельник"); break; case TUE: System.out.println("Вторник"); break; default: System.out.println("Другой день недели"); >> >
Понедельник
break при этом прерывает процесс проверки, поскольку соответствие условия уже найдено. Но начиная с Java 13, вместо break в условном операторе switch правильнее использовать yield — ключевое слово, которое не только завершает проверку, но и возвращает значение блока.
Кроме того, с 12 версии Java конструкция switch-case также претерпела некоторые изменения. Если вы используете в работе IntelliJ IDEA, данная среда разработки сама подскажет, как оптимизировать switch-case под новые версии.
Вот преобразованный код из нашего примера с некоторыми изменениями:
public class Main < private static enum DayOTheWeek< MON, TUE, WED, THU, FRI, SAT, SUN >public static void main(String[] args) < //В этот раз выберем вторник var dayOfTheWeek= DayOTheWeek.TUE; String result = switch (dayOfTheWeek)< case MON ->"Понедельник"; case TUE, WED, THU, FRI -> < yield "Любой будний день, кроме понедельника."; >default -> "Выходной день"; >; System.out.println(result); > >
Любой будний день, кроме понедельника.
Задачи на условные операторы Java
Определите, что выведут в консоль следующие примеры, без проверки в компиляторе.
1. В переменной min лежит число от 0 до 59. Определите в какую четверть часа попадает это число (в первую, вторую, третью или четвертую):
int min = 10; if(min >= 0 && min else if(min >= 15 && min else if(min >= 31 && min else
7 практических заданий с собеседования на позицию Junior Java Developer
2. Что выведет следующий код:
int month = 3; String monthString; switch (month) < case 1: monthString = "Январь"; break; case 2: monthString = "Февраль"; break; case 3: monthString = "Март"; break; case 4: monthString = "Апрель"; break; case 5: monthString = "Май"; break; case 6: monthString = "Июнь"; break; case 7: monthString = "Июль"; break; case 8: monthString = "Август"; break; case 9: monthString = "Сентябрь"; break; case 10: monthString = "Октябрь"; break; case 11: monthString = "Ноябрь"; break; case 12: monthString = "Декабрь"; break; default: monthString = "Не знаем такого"; break; >System.out.println(monthString);
3. Какое значение будет присвоено переменной k :
int i = -10 * -1 + (-2); int k = i < 0 ? -i : i; System.out.println(k);
Пишите свои ответы к задачам по условным операторам в Java.
Следите за новыми постами по любимым темам
Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
#6 – Условные конструкции (if-else, switch-case)
Условные конструкции позволяют выполнить проверку и в зависимости от результата произвести выполнение определенного участка кода. За урок мы научимся использовать конструкцию if-else, а также switch-case в языке Java.
Видеоурок
Условные операторы очень важны, ведь они позволяют выполнять разный код в зависимости от исхода условия. В языке Java существует три конструкции позволяющих осуществлять проверку.
Конструкция if - else
За счёт if else можно проверить одно или несколько условий и в случае их успешной проверки будет выполнен один, иначе другой.
int a = 2, b = 10; if (a == b) < // Если a будет равным b, тогда будет выполнен код // Здесь код который будет выполнен // Если все одна строка кода, то фигурные скобки <>// можно не ставить > else if (a else < // Этот код сработает, если другие условия не будет выполнено >
Вы можете прописать структуру лишь с одним условием if , а можете дописать в неё сколько-угодно вложенных условий else if .
Внутри каждого из условий можно прописывать другие конструкции if else, что будут проверять новые выражения.
Если необходимо проверить несколько условий в одном операторе, то можно воспользоваться логическим «и» или же логическим «или»:
if (a != b && a > b) < // Код будет выполнен, если и первое, и второе условие // окажутся верными >if (a < b || a == b) < // Код будет выполнен, если или первое, или второе условие // окажется верным >
Конструкция switch
Конструкция case обладает более удобным форматом для проверки множественных условий на совпадение значения. В конструкцию записывается переменная, что проверяется, а также значения на которые происходит проверка.
int x = 23; switch (x) < // Проверяем переменную x case 1: // Если переменная будет равна 1, то здесь сработает код // Может быть множество строк, а не только одна System.out.print ("Переменная равна 1"); break; // Указываем конец для кода для этой проверки case 56: // Если переменная будет равна 56, то здесь сработает код // Может быть множество строк, а не только одна System.out.print ("Переменная равна 56"); break; // Указываем конец для кода для этой проверки // По аналогии таких проверок может быть множество // Также можно добавить проверку, которая сработает в случае // если все остальные проверки не сработают default: System.out.print ("Что-то другое"); break; // Можно и не ставить, так как это последние условие >
Тернарная операция
Это сокращенная форма if else . Записывается следующим образом:
int x = 3, a = 12; int res = x < a ? (x + a) : (x - a); System.out.println(res);
Мы проверяем, если "x" будет меньше за "a", то мы в переменную res устанавливаем их сумму, иначе - их разницу.
Весь код будет доступен после подписки на проект!
Задание к уроку
Оператор switch case
Создайте условный оператор switch case для проверки числовой переменной.
- Если переменная равна 3 - выведите в консоль надпись "Три";
- Переменная равна 7 - выведите надпись "Семь";
- Для всего остального выведите надпись "Что-то другое".
Что такое if else в Java?
Конструкция if else позволяет проверить одно или же несколько условий и в случае если условие не будет верным, то выполнить другой код или проверить другое условие.
int a = 2, b = 10; if (a == b) < // Если a будет равным b, тогда выполниться код // Здесь код который выполниться // Если все одна строка кода, то фигурные скобки <>// можно не ставить > else if (a else < // Этот код сработает, если другие условия не выполнятся >
Вы можете прописать эту структуру лишь с одним условием if. Также вы можете прописывать сколько-угодно вложенных условий else if.
Внутри каждого условия можно записывать другие условия, которые будут проверять новые выражения.
Если нам понадобиться проверить на несколько условий в одном условном операторе, то мы можем воспользоваться логическим "и" или же логическим "или":
if (a != b && a > b) < // Код выполниться, если и первое, и второе условие // окажутся верными >if (a < b || a == b) < // Код выполниться, если или первое, или второе условие // окажется верным >
Тернарная операция
Это сокращенная форма if else . Записывается следующим образом:
int x = 3, a = 12; int res = x < a ? (x + a) : (x - a); System.out.println(res);
Мы проверяем, если "x" будет меньше за "a", то мы в переменную res устанавливаем их сумму, иначе - их разницу.