Условный оператор if в Java. Оператор switch

FacebooktwittertumblrFacebooktwittertumblr

Данная статья:

  • написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
  • это одна из статей из нашего "Самоучителя по Java"

В Java есть так называемые конструкции ветвления:

  1. Условный оператор if
  2. Оператор switch

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

Чтобы лучше понять, что такое конструкции ветвления в Java, представьте, что Вы стоите на раздорожье. Картинка Вам в помощь.

Vertex Academy_if construction

 

 

 

Если налево – попадёшь в офис

Если прямо – попадёшь в спортзал

Если направо – попадёшь на пляж

 

 

 

 

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

Общая форма условного оператора if в Java такая:

Обратите внимание, что: 

  • Оператор всегда начинается сос слова if, за которым всегда идут круглые скобки с условием.
  • После круглых скобок никогда не ставится точка с запятой
  • Для того, чтобы указать альтернативный вариант (если не выполняется, тогда...) использутся слово else.
  • Если условий несколько, то каждое из них будет записываться через комбинацию else if, после которых в круглых скобках записывается альтернативное условие. Последний вариант (если не то, не то и не то, то...) записывается через else без условия.

Предлагаю решить несколько задач.

Задача №1

Необходимо написать программу, где бы пользователю предлагалось ввести число на выбор: 1, 2 или 3, а программа должна сказать, какое число ввёл пользователь: 1, 2, или 3.

Решение:

Комментарии:

1. В условии сказано, что пользователь должен ввести число на выбор: 1, 2 или 3. Соответственно, первое, что мы должны сделать - это предложить пользователю ввести число. Поэтому пишем в коде :

2. Далее пользователь должен ввести число, а мы должны считать его с консоли. Для этого мы подключаем сканер с помощью вот этой строчки:

3. Далее с помощью  сканера, а именно этих 2 строк, мы присваиваем в переменную i число, которое ввел пользователь:

Если Вы не знаете, как работает сканер, то есть не понимаете эти 2 строчки, то прочитайте вот эту статью - "Работа со сканером в Java (ввод и вывод данных)"

4. Затем проверяем равно ли i 1.  Если i равно 1, будет выведено на экран сообщение: "Вы ввели число 1"

5. Если i не равно 1, то проверяем равно ли i 2. Если i равно 2, будет выведено на экран сообщение: "Вы ввели число 2"

6. Если i не равно 1 или 2, то проверяется равно ли i 3. Если i равно 3, будет выведено сообщение на экран: "Вы ввели число 3"

7.  Если же все предыдущие шаги оказались false (то есть i не равно ни 1, ни 2, ни 3), оператор перейдёт к выполнению кода, который написан в else и на экран будет выведено сообщение: "Вы ввели число не равное 1, 2 или 3"

И оператор будет закончен. Конец программы.

Ещё раз обращаем внимание на то, что: 

  • Оператор всегда начинается сос слова if, за которым всегда идут круглые скобки с условием.
  • После круглых скобок никогда не ставится точка с запятой
  • Для того, чтобы указать альтернативный вариант (если не выполняется, тогда...) использутся слово else.
  • Если условий несколько, то каждое из них будет записываться через комбинацию else if, после которых в круглых скобках записывается альтернативное условие. Последний вариант (если не то, не то и не то, то...) записывается через else без условия.

Вы уже могли убедиться в этом на примере решённой задачи №1

8. Также хотим обратить Ваше внимание на то, что, например,  в if ( i ==1)  мы использовали двойное равенство == . Очень распространенная ошибка у новичков вместо == использовать =.

Напоминаем:

Например:

int i = 1;

int k =7;

  • когда проверяется значение переменной на равенство, например, равна ли переменная i 1, используется  ==. И именно поэтому мы писали в коде if ( i ==1) и т.д.

Задача №2 

Необходимо написать программу, где бы пользователю предлагалось ввести число  1. Если пользователь ввёл число 1, программа должна вывести сообщение: "Вы ввели число 1". Если пользователь ввёл другое число, программа должна вывести такое сообщение: "Вы ввели число не равное 1"

Да, задача похожа на задачу №1. Сейчас Вы поймете зачем мы привели пример этой задачи.

Решение: 

Комментарии: 

В данной задаче мы проверяем намного меньше условий, нежели в задаче №1. И смотрите как выглядит конструкция if  в данной задаче:

У нас есть только if и else. Else if нет.  Да-да, работает все то же правило: 

  • Оператор всегда начинается сос слова if, за которым всегда идут круглые скобки с условием.
  • После круглых скобок никогда не ставится точка с запятой
  • Для того, чтобы указать альтернативный вариант (если не выполняется, тогда...) использутся слово else.
  • Если условий несколько, то каждое из них будет записываться через комбинацию else if, после которых в круглых скобках записывается альтернативное условие. Последний вариант (если не то, не то и не то, то...) записывается через else без условия.

И действительно, конструкция начинается с if, заканчивается else.  Else if в данном примере нет, потому что мы проверяем только 1 условие if ( i ==1). Если бы проверяли 2 и более условий, как в задаче №1, то между if и else были бы else if.

Задача №3

Необходимо написать программу, где бы пользователю предлагалось ввести число  1. Если пользователь ввёл число 1, программа должна вывести сообщение: "Вы ввели число 1". Если пользователь ввёл другое число, программа вообще ничего не должна делать. 

Да, эта задача похожа на задачу №2 - отличие только во второй части условия. Обратите внимание как решалась бы такая задача.

Решение:

Комментарии:

Как видно из решения задачи, есть if, но нет else

Почему так? Да потому что по условию данной задачи нам необходимо было, при условии true, выводить сообщение "Вы ввели число 1", при условии false необходимо было, чтоб программа больше ничего не делала. И поэтому мы не писали в данном коде else.


Оператор switch (или ещё называется ветвление с помощью переключателей)

Конструкции с операторами if else, предлагающими большое количество условных ветвлений, могут выглядеть очень громоздкими. Поэтому в тех случаях, когда необходимо повторять проверку одного и того же значения переменной, есть более элегантное решение с помощью оператора switch.

Смотрим на практике как работает оператор switch.

Задача №4

Если Вы попробуете запустить этот код на своём компьютере, то на консоли Вы увидите следующее: 

Введите 1, 2, 3 или 4

Затем, если Вы, например, введёте число 1 , то на консоли будет следующее:

Введите 1, 2, 3 или 4
1
Вы ввели число 1

Если же Вы, например, введёте число 5, то на консоли будет следующее:

Введите 1, 2, 3 или 4
5
Вы ввели неправильное число

Комментарии:

Сначала предложили пользователю ввести числа: 1, 2, 3 или 4

Затем подключили сканер с методом nextInt для целых чисел, потому что мы же ожидаем, что пользователь введёт 1, 2, 3 или 4, а это целые числа.

Затем проверяем значение переменной number

И для этого прописываем все возможные значения number и код, который будет выполняться, при том или ином значении

Если же пользователь введёт целое число, которое не будет равно 1, 2, 3 или 4 (в нашем примере мы предположили, что пользователь ввёл 5), тогда отработает в коде вот эта строчка

Важно:  каждый case должен закрываться в конце  с помощью break.  Благодаря break программа прекращает выполнять код и выходит из условного оператора.

Общая форма оператора switch


Подытожим:

В Java есть так называемые конструкции ветвления:

  1. Условный оператор if
  2. Оператор switch

Общая форма условного оператора if в Java:

Также может быть в таком виде:

или в таком:

Общая форма оператора switch


Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Обучаем с нуля.

По всем вопросам звоните:

+38 050 205 77 99

+38 098 205 77 99

Или читайте информацию по нашим курсам Java c нуля у нас на сайте.

FacebooktwittertumblrFacebooktwittertumblr

FacebooktwittertumblrFacebooktwittertumblr
Самоучители--узнать детальнее--