Философия программирования на C++ Выпуск 12. Условия 3
Добрый день всем, кто с нами!
Сегодня мы расскажем, что еще важно знать об условиях.
Итак, в прошлой программе мы по введенному пользователем числу определяли, что должна делать программа. И добавили несколько условий, которые проверяют, что пользователь ввел правильное число.
Сегодня мы сделаем то же самое, но теперь, если пользователь ввел что-то неправильно, мы не будем выводить ему результат 0, а просто сообщим, что он ввел неверное число. И вот код, который это делает:
Разберем программу. Начало нам знакомо вплоть до первого условия. Во-первых, появились новые условия >= и <=. Это проверка на то, что число больше или равно того, что стоит справа (или меньше или равно соответственно). Например, "10 >= 9" - верное условие, поскольку 10 больше 9. Но и "9 >= 9" тоже верное, поскольку 9 равно 9. А вот "10 <= 9" - уже неправильное условие (оно даст false, ложь
- надеюсь, вы еще помните что это), поскольку 10 ни меньше, ни равно 9.
Кроме этого здесь так называемое составное условие. Мы добавили оператор ИЛИ (|| - две вертикальные палочки), который соединяет два условия. Он дает истину (true) в том случае, если выполнится ХОТЯ БЫ одно из условий слева и справа от него. В остальных случаях - ложь (false) и составное условие не выполнится.
В данном примере, если пользователь введет число меньше либо равное 0 ИЛИ больше либо равное 5 (то есть как раз не 1-4),
то сработает либо левое условие, либо правое.
Например, пользователь ввел 10. Тогда условие "action <= 0" вернет false, поскольку "10 <= 0" очевидно ложно, а "action >= 5" вернет true. Поэтому оператор || (ИЛИ) вернет нам true, поскольку одно из условий сработало. В следующем выпуске мы подробнее рассмотрим составные операторы условий.
Следующее новое в этой программе - это оператор return. Он позволяет завершить работу текущей функции (да-да, помните, что программа
работает в функции main?). Оператор return тут же завершает работу функции, а значит и программа дальше не выполняется.
Число ноль справа от return означает значение, которое функция возвращает. Подробнее о них - в выпусках, посвященных функциям. Пока вам достаточно запомнить, что внутри функции main код 0 означает "успешное выполнение программы", а остальные - неуспешное (с ошибкой). Мы использовали везде 0 только потому, что как правило для вас безразлично, успешно ли завершилась программа.
Идем
дальше. Теперь рассмотрим условие, в котором пользователь ввел число 3. Если пользователь ввел 3, то выполняться будет блок внутри этого условия. А внутри него - еще одно условие! Да, так можно делать, вложенность условий может быть бесконечной. Внутри условия можно засовывать еще много условий.
Итак, пользователь выбрал действие 3 - деление. Поскольку делить на 0 математика не позволяет, то нам необходимо проверить, что пользователь не пытается разделить на 3 (иначе мы не будем знать, какой результат
возвращать). Поэтому мы пишем еще одно новое для вас условие - "!=" (не равно). Читается так: если b НЕ РАВНО 0, то... условие истинно. Поэтому, если b не равно нулю, мы просто делим на него число a. Но что делать, если оно все-таки равно нулю? На этот случай есть еще одно ключевое слово - else. Оно позволяет написать блок кода для случая, когда условие НЕ выполнилось (вернуло false). То есть когда не выполнится условие, что b не равно нулю (то есть когда b будет все-таки равно нулю - дада, немного
запутанно, но я в вас верю), мы выводим снова предупреждение пользователю и - выходим из программы!
Кстати, else тоже можно писать без фигурных скобочек {} - но только если внутри него всего одна команда.
Выпуск получился большим и тяжелым. В следующем выпуске мы подведем итоги по условиям и рассмотрим более сложные составные условия. В этом месте понадобится знание дискретной математики. Я бы рекомендовал ее поизучать - это очень полезный раздел математики. Мы будем ее проходить, но не вдаваясь
в теоретические подробности.
А на сегодня все, всем спасибо, что вы с нами! Успехов в изучении программирования!