Что такое 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 устанавливаем их сумму, иначе - их разницу.
Оператор 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». Поэтому его называют «логическое ИЛИ».
Оператор if
Условный оператор if часто применяется программистами и имеется во всех языках программирования. Оператор if позволяет вашей программе в зависимости от условий выполнить оператор или группу операторов, основываясь на значении булевой переменной или выражения. Оператор if является основным оператором выбора в Java и позволяет выборочно изменять ход выполнения программы - и это одно из основных отличий между программированием и простым вычислением.
Оператор if начинается с ключевого слова if. Ключевое слово if должно сопровождаться булевым выражением, заключённым в скобки. Самая простая форма выглядит так:
if (условие) оператор; // если условие истинно, то выполняется оператор
Здесь условие - это булево выражение, имеющее значение true или false. Если условие истинно, то оператор или группа операторов выполняется, если ложно, то оператор не выполняется. Очень часто булево выражение в операторе if содержит какое-нибудь сравнение, но можно использовать булеву переменную или константу
// Если кот голоден if (isHungry)
Оператор if продолжается заключенным в фигурные скобки фрагментом, который называют блоком операторов. Если используется только один оператор, то фигурные скобки можно опустить. Но практика показывает, что лучше их всегда использовать, особенно в сложных проектах, когда постоянно приходится что-то переделывать.
Напишем следующий пример:
if (2 * 2 == 5)
Как вы думаете, что появится на экране? Правильно, ничего, так как оператор не будет выполняться, потому что условие 2 * 2 == 5 является ложным.
Обратите внимание, что оператор равенства состоит из двух символов знака равно. Об этом часто забывают начинающие программисты.
Вот список операторов, которые можно использовать в условных выражениях (не ставьте пробел между двумя символами и соблюдайте их очерёдность):
| Оператор | Описание |
|---|---|
| Меньше чем | |
| Меньше или равно | |
| > | Больше чем |
| >= | Больше или равно |
| == | Равно |
| != | Не равно |
Результат сравнения удобно использовать для изменения логики программы. Например, если кот голоден, то накормить его. Или если число нечётное, то сделать его чётным.
if(number % 2 != 0) ++number;
Существует расширенный вариант оператора if с использованием ключевого слова else:
if (условие) оператор; // если условие истинно, то выполняется первый оператор else оператор; // если условие ложно, то выполняется оператор после else
В этом случае при выполнении условия оператора if инициируется только один оператор, если условие не выполняется, то также инициируется только один оператор, который относится к else. Также можно использовать блоки операторов, тогда синтаксис будет выглядеть так:
if (условие) < оператор1; оператор2; >else
Обе части оператора if и else не могут выполняться одновременно. А условное выражение, управляющее оператором if должно возвращать булево значение.
Возьмём пример из жизни. Выйдем на Манежную площадь, где собрались люди, поддерживающие Путина. У митингующих можно встретить плакат:
Попробуем перевести его на язык Java:
String who = mResultEditText.getText().toString(); if (!who.equals("Putin")) who = "Cat"; else who = "Putin"; mResultEditText.setText(who);
Запустите программу и пробуйте завести любые фамилии политиков, а затем щелкайте на кнопке. Вы увидите, что при вводе любой фамилии кроме Putin, президентом будет кот.

Вложенные операторы if
Вложенный оператор if используется для дальнейшей проверки данных после того, как условие предыдущего оператора if принимает значение true. Иными словами, вложенный оператор применяется в тех случаях, когда для выполнения действия требуется соблюдение сразу нескольких условий, которые не могут быть указаны в одном условном выражении. Необходимо помнить, что во вложенных операторах if-else вторая часть else всегда относится к ближайшему оператору if, за условным выражением которого следует оператор ; или блок операторов. Вот небольшой пример:
if(i == 10) < if(j < 20) a = b; if(k >100) c = d; else a = c; // else относится к if(k > 100) > else a = d; // else относится к if(i == 10)
Цепочка операторов if-else-if
Часто используется цепочка операторов if-else-if - конструкция, состоящая из вложенных операторов if:
if (condition) statement; else if (condition) statement; else if (condition) statement; . . . else statement;
Условные выражения оцениваются сверху вниз. Как только найдено условие, принимающее значение true, выполняется ассоциированный с этим условием оператор, а остальная часть цепочки пропускается. Если ни одно из условий не принимает значение true, то выполняется последний оператор else, который можно рассматривать как оператор по умолчанию. Если же последний оператор else отсутствует, а все условные выражения принимают значение false, то программа не выполняет никаких действий.
Напишем пример, вычисляющий время года, когда коты поют свои мартовские песни.
int month = 3; // март String season; // время года if(month == 1 || month == 2 || month == 12) season = "Зимушка-зима"; else if (month == 3 || month == 4 || month == 5) season = "Весна"; else if (month == 6 || month == 7 || month == 8) season = "Лето"; else if (month == 9 || month == 10 || month == 11) season = "Осень"; else season = "Вы с какой планеты?"; mInfoTextView.setText("Мартовские песни коты поют, когда на дворе " + season);
Порядок условий имеет значение: если мы расположим условия if и else if в неправильном порядке, то может случится, что ни одна из ветвей else if не выполнится никогда.
Ещё про котов (котов не бывает много). В зависимости от имени кота получаем его описание.
String catName = "Рыжик"; if (catName == "Пушок") < System.out.println("Ваш котёнок пушистенький"); >else if (catName == "Рыжик") < System.out.println("Ваш котёнок рыженький"); >else
Гулять так гулять. Усложняем условия.
String[] cats = ; Random random = new Random(); String catName = cats[random.nextInt(4)]; if (catName.equals("Пушок")) < System.out.println("Ваш котёнок пушистенький"); >else if (catName.equals("Рыжик")) < System.out.println("Ваш котёнок рыженький"); >else if (catName.equals("Лохматик")) < System.out.println("Ваш котёнок лохматенький"); >else if (catName.equals("Чудик")) < System.out.println("Ваш котёнок чудной"); >else
Тернарный оператор
Продвинутые программисты часто используют тернарный оператор ? : вместо if-else. Тернарный оператор использует три операнда и записывается в форме:
логическое_условие ? выражение1 : выражение2

Знак вопроса является переходом к блокам. Как видим, после вопросительного знака идут два блока. Если в условии получаем True, то используем первый блок. Если в условии у нас получается False, то используем второй блок.
Например, нужно вычислить, какое из двух чисел больше и занести результат в третью переменную:
int largerNum; int lowNum = 9; int highNum = 27; if(lowNum < highNum) // если первое число меньше второго < largerNum = highNum; >else < // иначе largerNum = lowNum; >
При тернарном варианте код будет следующим:
int lowNum = 9; int highNum = 27; int largerNum = lowNum < highNum ? highNum : lowNum;
Сравниваем два заданных числа. Так как 9 меньше 27, то берём выражение из первого блока, т.е. highNum.
Нельзя сказать, что такой код слишком читаем, поэтому можно не использовать в своей практике.
Android Studio
Если вы используете if, то делайте это следующим образом. Сначала напишите само булево выражение для проверки, например, (5 + 4 > 2), потом ставьте точку и студия предложит вам вариант с if - соглашаемся и получаем готовое выражение с фигурными скобками. Экономьте своё время.
Как записать несколько условий в if java
Одним из фундаментальных элементов многих языков программирования являются условные конструкции . Данные конструкции позволяют направить работу программы по одному из путей в зависимости от определенных условий.
В языке Java используются следующие условные конструкции: if..else и switch..case
Конструкция if/else
Выражение if/else проверяет истинность некоторого условия и в зависимости от результатов проверки выполняет определенный код:
int num1 = 6; int num2 = 4; if(num1>num2)
После ключевого слова if ставится условие. И если это условие выполняется, то срабатывает код, который помещен в далее в блоке if после фигурных скобок. В качестве условий выступает операция сравнения двух чисел.
Так как, в данном случае первое число больше второго, то выражение num1 > num2 истинно и возвращает значение true . Следовательно, управление переходит в блок кода после фигурных скобок и начинает выполнять содержащиеся там инструкции, а конкретно метод System.out.println("Первое число больше второго"); . Если бы первое число оказалось бы меньше второго или равно ему, то инструкции в блоке if не выполнялись бы.
Но что, если мы захотим, чтобы при несоблюдении условия также выполнялись какие-либо действия? В этом случае мы можем добавить блок else :
int num1 = 6; int num2 = 4; if(num1>num2) < System.out.println("Первое число больше второго"); >else
Но при сравнении чисел мы можем насчитать три состояния: первое число больше второго, первое число меньше второго и числа равны. С помощью выражения else if , мы можем обрабатывать дополнительные условия:
int num1 = 6; int num2 = 8; if(num1>num2) < System.out.println("Первое число больше второго"); >else if(num1
Также мы можем соединить сразу несколько условий, используя логические операторы:
int num1 = 8; int num2 = 6; if(num1 > num2 && num1>7)
Здесь блок if будет выполняться, если num1 > num2 равно true и одновременно num1>7 равно true .
Конструкция switch
Конструкция switch/case аналогична конструкции if/else , так как позволяет обработать сразу несколько условий:
int num = 8; switch(num)
После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями, помещенными после операторов сase . И если совпадение найдено, то будет выполняет соответствующий блок сase .
В конце блока сase ставится оператор break , чтобы избежать выполнения других блоков. Например, если бы убрали оператор break в следующем случае:
case 8: System.out.println("число равно 8"); num++; case 9: System.out.println("число равно 9"); break;
то выполнился бы блок case 8 , (поскольку переменная num равна 8). Но так как в этом блоке оператор break отсутствует, то начал бы выполняться блок case 9 .
Если мы хотим также обработать ситуацию, когда совпадения не будет найдено, то можно добавить блок default , как в примере выше. Хотя блок default необязателен.
Также мы можем определить одно действие сразу для нескольких блоков case подряд:
int num = 3; int output = 0; switch(num) < case 1: output = 3; break; case 2: case 3: case 4: output = 6; break; case 5: output = 12; break; default: output = 24; >System.out.println(output);
Тернарная операция
Тернарную операция имеет следующий синтаксис: [первый операнд - условие] ? [второй операнд] : [третий операнд] . Таким образом, в этой операции участвуют сразу три операнда. В зависимости от условия тернарная операция возвращает второй или третий операнд: если условие равно true , то возвращается второй операнд; если условие равно false , то третий. Например:
int x=3; int y=2; int z = x
- Вопросы для самопроверки
- Упражнения
