Найти тему
TAVIAN

JAVA: Операторы if-else, switch-case (+пишем простейший калькулятор)

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

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

Приведу пример:

В скобках мы указали условие - если а больше b, то выведи текст. В результате мы получим вывод текста Да, так и есть. потому что 15 действительно больше 10.

В данном случае мы можем проверять на > больше, на < меньше, на == равенство, на != неравенство, на >= больше или равно, на <= меньше или равно,

Важный момент про переменную boolean: Как мы знаем из предыдущего урока, она имеет параметр, либо true, либо fallse. С одной стороны можно ее прописать как обычно boolean name = false либо true. затем в операторе if прописать, например, (boolean_name != false), но с другой стороны так уже почти никто не пишет.

Запомните, если написать просто if(boolean_name) она эквивалента записи if(boolean_name == true) тогда как вместо if(boolean_name == false) достаточно прописать if(!boolean_name).

-2

Смотря на пример, мы видим, что переменной boolean мы присвоили имя bool, и по умолчанию присвоили значение true, а в операторе if прописано равенство на false, поэтому в этом случае надпись "Да, так и есть." на экран выведено не будет. Однако, если убрать ! из оператора if тогда true = true, и надпись на экран будет выведена.

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

Роль оператора else заключается в том, чтобы выполнить действие, если в операторе if условие оказалось неверным.

Если из примера приведенного выше следует значение по умолчанию boolean = true, а в операторе if прописано равенство на false, то как сказано выше - ничего не произойдет, потому как не прописано, что делать, если условие if не выполнено. Давайте это исправим.

-3

Вот теперь мы имеем дальнейшее действие. Теперь наша программа знает, что делать если boolean = false, и что делать если boolean = true. Давайте расшифруем: По умолчанию у нас bool = true и если бы в операторе if (если) было бы прописано true, то есть без восклицательного знака, то на экран был бы вывод "Да так и есть", но так как у нас стоит неравенство, выполняется оператор else (еще) и показывает следующий кусочек кода.

Помимо оператора if и оператора else еще существует оператор else if. Этот оператор позволяет добавить дополнительное условие else if прописывается между if и else. Скажем так else if это промежуточная проверка между if и else.

*Если else и else if необходимо писать в строгой последовательности, то оператор if можно писать как самостоятельный, так и после каждого else и else if.

Теперь мы узнали о существовании трёх операторов if, else и else if, и нам конечно же не терпится проверить их все три на практике. Но как же это сделать, если на предыдущих примерах есть только два вывода - истина или ложь? Ничего страшного, мы используем символы || - или, && - и. А как их использовать, покажу в следующих примерах, где за одно закрепим предыдущий урок.

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

-4

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

-5

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

-6

В скобках оператора if через equals мы проверяем, чтобы то, что пользователь написал в username совпадало с тем, что записано в переменной login. Если пользователь на запрос ввести логин в username напишет admin, как это присвоено переменной login, тогда программа его поприветствует, и попросит ввести пароль. Если пользователь напишет другое имя, то сработает оператор else, и на экран будет выведен другой кусочек кода:

-7

Наш пользователь ввёл правильный логин admin, программа его поприветствовала, и попросила ввести пароль. Теперь давайте напишем условия для пароля. Для этого мы прямо внутри оператора if напишем еще один оператор if. Да, так как оператор if является самостоятельным, то их один внутри другого можно писать сколько угодно много:

-8

По примеру проверки логина мы также проверили правильность ввода пароля, сославшись на переменную pass и дописали условие else, что делать, если пароль будет введен не верно. Полностью код программы выглядит так:

-9

А теперь давайте усложним нашу программу, и попросим пользователя не просто ввести пароль, но и подтвердить его.

Добавляем в нашу программу еще одну переменную с названием confpass

-10

В первом операторе if, сразу после просьбы пользователя ввести пароль, просим его подтвердить

-11

А в условии второго оператора if добавляем второе условие через амперсанд &&, чтобы проверка была и по переменной pass и по переменной confpass

-12

Если бы мы написали не &&, а например ||, тогда проверка была бы на совпадение хотя бы одной переменной, потому что || это или.

Полный код программы теперь выглядит вот так:

-13

Если в предыдущих примерах мы сами присваивали значение переменным login, pass и confpass, то в следующим примере давайте сделаем так, чтобы пользователь сам вводил значение в переменную. Для этого будем использовать переменную int

-14

Здесь всё как обычно, подключаем Scanner, просим пользователя ввести число, а дальше мы будем использовать не привычные нам if-else, а switch-case. Данный оператор проверяет переменную на множество различных значений.

-15

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

Теперь давайте напишем простейший калькулятор на основе пройденного материала.

-16

Подключаем Scanner для того, чтобы пользователь мог писать числа, объявляем переменную int с именем res. Так как переменная int, то работать будем только с целыми числами, иначе будет выводиться ошибка.

-17

Просим пользователя ввести первое целое число, и под это число объявляем переменную int с именем num1

-18

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

-19

Просим пользователя ввести второе целое число и также объявляем под него переменную int только с именем num2

-20

И вот тут нам пригодились switch-case. В скобках switch написано имя action переменной String, которая отвечает за действие. В case спрашивается, что делать, при получение данных с action. На примере мы видим, если пользователь в action напишет символ +, то будет происходить сложение переменных num1 и num2, после чего будет выведен результат. То же самое с вычитанием и умножением.

-21

Однако, в случае с делением не всё так однозначно, и поэтому здесь мы прибегнем к операторам if-else. Так как на 0 делить нельзя, мы добавляем оператор if в скобках которого прописываем проверку на равенство. То есть, если второе число будет = 0, тогда пользователь увидит сообщение о том, что на 0 делить нельзя. Иначе сработает код else и пользователь получит результат.

Полный код программы выглядит вот так

-22