Java if else синтаксис

Для того, чтобы изменить последовательность выполнения фрагментов программы, в языке Java применяются конструкции if , if-else и switch.

В этом уроке мы рассмотрим:

В конце урока предложены упражнения для закрепления материала.

Конструкция if-else имеет следующий вид:

Блок else не является обязательным.

Логическое выражение это выражение (или переменная), возвращающее значение типа boolean .

Логические операторы в Java.

В логическом выражении могут использоваться следующие логические операторы: ==, !=, =,>, Отличие == и equals

Оператор == работает иначе на объектных типах данных, нежели на примитивных. Когда мы используем объекты и хотим проверить их равенство, то оператор == укажет нам лишь на то, являются ли объекты одними и теми же или нет. Если же необходимо проверить логическое равенство объектов, то следует использовать метод equals . Пример:

Условный оператор if

Ели логическое выражение в скобках правдиво, то выполняется , блок кода в фигурных скобках <> после if. Если логическое выражение принимает значение false, то ничего не происходит.

Условный оператор if-else

Конструкция if-else отличается от предыдущей тем, что если логическое выражение в круглых скобках принимает значение false, то выполняется блок кода, находящийся в фигурных скобках после ключевого слова else

Возможные сокращения if-else

1. Если блоки кода if, else содержат лишь одну строку, то можно обойтись без использования фигурных скобок. Предыдущий пример можем записать так:

2. Существует еще один способ сокращения оператора if-else при помощи оператора ? : . Запишем предыдущий пример следующим образом:

Общая форма записи условия выглядит следующим образом:

Если Логическое_выражение принимает значение true, то выполняется Выражение1, а иначе — Выражение2. Внимание: при использовании этой конструкции два последних выражения должны иметь один и тот же тип.

Условный оператор switch — case

Условный оператор switch — case удобен в тех случаях, когда количество вариантов очень много и писать для каждого if-else очень долго. Конструкция имеет следующий вид :

switch работает с такими примитивными типами данных как: byte , short , char , и int . Также с типами Enum, классом String и несколькими специальными классами-оболочками примитивных типов: Character, Byte, Short, Integer.

Выражение в круглых скобках после switch сравнивается со значениями, указанными после слова case, и, в случае совпадения, управление передается соответствующему блоку кода. Если выражение не совпадает ни с одним вариантом case, то управление передается блоку default, который не является обязательным. После выполнения соответствующего блока, оператор break вызывает завершение выполнения оператора switch. Если break отсутствует, то управление передается следующему блоку за только что выполненным.

В следующем примере, для целочисленного значения, представляющего день недели, определяется его название в виде строки. Для значения 3, переменная dayString примет значение «Среда».

Условный оператор if часто применяется программистами и имеется во всех языках программирования. Оператор if позволяет вашей программе в зависимости от условий выполнить оператор или группу операторов, основываясь на значении булевой переменной или выражения. Оператор if является основным оператором выбора в Java и позволяет выборочно изменять ход выполнения программы — и это одно из основных отличий между программированием и простым вычислением.

Оператор if начинается с ключевого слова if. Ключевое слово if должно сопровождаться булевым выражением, заключённым в скобки. Самая простая форма выглядит так:

Здесь условие — это булево выражение, имеющее значение true или false. Если условие истинно, то оператор или группа операторов выполняется, если ложно, то оператор не выполняется. Очень часто булево выражение в операторе if содержит какое-нибудь сравнение, но можно использовать булеву переменную или константу

Оператор if продолжается заключенным в фигурные скобки фрагментом, который называют блоком операторов. Если используется только один оператор, то фигурные скобки можно опустить. Но практика показывает, что лучше их всегда использовать, особенно в сложных проектах, когда постоянно приходится что-то переделывать.

Напишем следующий пример:

Как вы думаете, что появится на экране? Правильно, ничего, так как оператор не будет выполняться, потому что условие 2 * 2 == 5 является ложным.

Обратите внимание, что оператор равенства состоит из двух символов знака равно. Об этом часто забывают начинающие программисты.

Вот список операторов, которые можно использовать в условных выражениях (не ставьте пробел между двумя символами и соблюдайте их очерёдность):

ОператорОписание
Больше чем
>=Больше или равно
==Равно
!=Не равно

Результат сравнения удобно использовать для изменения логики программы. Например, если кот голоден, то накормить его. Или если число нечётное, то сделать его чётным.

Существует расширенный вариант оператора if с использованием ключевого слова else:

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

Обе части оператора if и else не могут выполняться одновременно. А условное выражение, управляющее оператором if должно возвращать булево значение.

Возьмём пример из жизни. Выйдем на Манежную площадь, где собрались люди, поддерживающие Путина. У митингующих можно встретить плакат:

Попробуем перевести его на язык Java:

Запустите программу и пробуйте завести любые фамилии политиков, а затем щелкайте на кнопке. Вы увидите, что при вводе любой фамилии кроме Putin, президентом будет кот.

Вложенные операторы if

Вложенный оператор if используется для дальнейшей проверки данных после того, как условие предыдущего оператора if принимает значение true. Иными словами, вложенный оператор применяется в тех случаях, когда для выполнения действия требуется соблюдение сразу нескольких условий, которые не могут быть указаны в одном условном выражении. Необходимо помнить, что во вложенных операторах if-else вторая часть else всегда относится к ближайшему оператору if, за условным выражением которого следует оператор ; или блок операторов. Вот небольшой пример:

Цепочка операторов if-else-if

Часто используется цепочка операторов if-else-if — конструкция, состоящая из вложенных операторов if:

Условные выражения оцениваются сверху вниз. Как только найдено условие, принимающее значение true, выполняется ассоциированный с этим условием оператор, а остальная часть цепочки пропускается. Если ни одно из условий не принимает значение true, то выполняется последний оператор else, который можно рассматривать как оператор по умолчанию. Если же последний оператор else отсутствует, а все условные выражения принимают значение false, то программа не выполняет никаких действий.

Напишем пример, вычисляющий время года, когда коты поют свои мартовские песни.

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

Тернарный оператор

Продвинутые программисты часто используют тернарный оператор ? : вместо if-else. Тернарный оператор использует три операнда и записывается в форме:

Если логическое_условие истинно, т.е. возвращает true, то берётся (или вычисляется) первое выражение слева от двоеточия, если возвращается false, то берётся второе выражение справа от двоеточия.

Например, нужно вычислить, какое из двух чисел больше и занести результат в третью переменную:

При тернарном варианте код будет следующим:

Нельзя сказать, что такой код слишком читаем, поэтому можно не использовать в своей практике.

Android Studio

Если вы используете if, то делайте это следующим образом. Сначала напишите само булево выражение для проверки, например, (5 + 4 > 2), потом ставьте точку и студия предложит вам вариант с if — соглашаемся и получаем готовое выражение с фигурными скобками. Экономьте своё время.

Иногда нам нужно выполнить различные действия в зависимости от условий.

Для этого мы можем использовать оператор if и условный оператор ? , который также называют «оператор вопросительный знак».

Оператор «if»

Оператор if(. ) вычисляет условие в скобках и, если результат true , то выполняет блок кода.

В примере выше, условие – это простая проверка на равенство ( year == 2015 ), но оно может быть и гораздо более сложным.

Если мы хотим выполнить более одной инструкции, то нужно заключить блок кода в фигурные скобки:

Мы рекомендуем использовать фигурные скобки <> всегда, когда вы используете оператор if , даже если выполняется только одна команда. Это улучшает читабельность кода.

Преобразование к логическому типу

Оператор if (…) вычисляет выражение в скобках и преобразует результат к логическому типу.

Давайте вспомним правила преобразования типов из главы Преобразование типов:

  • Число 0 , пустая строка "" , null , undefined и NaN становятся false . Из-за этого их называют «ложными» («falsy») значениями.
  • Остальные значения становятся true , поэтому их называют «правдивыми» («truthy»).

Таким образом, код при таком условии никогда не выполнится:

…а при таком – выполнится всегда:

Мы также можем передать заранее вычисленное в переменной логическое значение в if , например так:

Блок «else»

Оператор if может содержать необязательный блок «else» («иначе»). Выполняется, когда условие ложно.

Несколько условий: «else if»

Иногда, нужно проверить несколько вариантов условия. Для этого используется блок else if .

В приведённом выше коде, JavaScript сначала проверит year . Если это неверно, он переходит к следующему условию year > 2015 . Если оно тоже ложно, тогда сработает последний alert .

Блоков else if может быть и больше. Присутствие блока else не является обязательным.

Условный оператор „?“

Иногда, нам нужно назначить переменную в зависимости от условия.

Так называемый «условный» оператор «вопросительный знак» позволяет нам сделать это более коротким и простым способом.

Оператор представлен знаком вопроса ? . Его также называют «тернарный», так как этот оператор, единственный в своём роде, имеет три аргумента.

Сначала вычисляется условие : если оно истинно, тогда возвращается значение1 , в противном случае – значение2 .

Технически, мы можем опустить круглые скобки вокруг age > 18 . Оператор вопросительного знака имеет низкий приоритет, поэтому он выполняется после сравнения > .

Этот пример будет делать то же самое, что и предыдущий:

Но скобки делают код более читабельным, поэтому мы рекомендуем их использовать.

В примере выше, вы можете избежать использования оператора вопросительного знака ? , т.к. сравнение само по себе уже возвращает true/false :

Несколько операторов „?“

Последовательность операторов вопросительного знака ? позволяет вернуть значение, которое зависит от более чем одного условия.

Поначалу может быть сложно понять, что происходит. Но при ближайшем рассмотрении мы видим, что это обычная последовательная проверка:

  1. Первый знак вопроса проверяет age .
  2. Если верно – возвращает ‘Здравствуй, малыш!’ . В противном случае, проверяет выражение после двоеточия „":"“, вычисляет age .
  3. Если это верно – возвращает ‘Привет!’ . В противном случае, проверяет выражение после следующего двоеточия „":"“, вычисляет age .
  4. Если это верно – возвращает ‘Здравствуйте!’ . В противном случае, возвращает выражение после последнего двоеточия – ‘Какой необычный возраст!’ .

Вот как это выглядит при использовании if..else :

Нетрадиционное использование „?“

Иногда оператор вопросительный знак ? используется в качестве замены if :

В зависимости от условия company == ‘Netscape’ , будет выполнена либо первая, либо вторая часть после ? .

Здесь мы не присваиваем результат переменной. Вместо этого мы выполняем различный код в зависимости от условия.

Не рекомендуется использовать оператор вопросительного знака таким образом.

Несмотря на то, что такая запись короче, чем эквивалентное выражение if , она менее читабельна.

Вот, для сравнения, тот же код, использующий if :

При чтении глаза сканируют код по вертикали. Блоки кода, занимающие несколько строк, воспринимаются гораздо легче, чем длинный горизонтальный набор инструкций.

Смысл оператора вопросительный знак ? – вернуть то или иное значение, в зависимости от условия. Пожалуйста, используйте его именно для этого. Когда вам нужно выполнить разные ветви кода – используйте if .

Оцените статью
Ремонт оргтехники
Добавить комментарий