Листинг 4. Работа программы основывается на указаниях пользователя.
Если на ваш взгляд программа написана вполне корректно, посмотрите ее текст еще раз более внимательно — там есть серьезное упущение. Программа написана так, что пользователь должен в ответ на запрос ввести прописную букву Y, если товар облагается налогом. Если пользователь вводит строчную букву y, программа будет считать, что налог в данном случае не взимается, ведь в инструкции if в качестве правильного условия рассматривается только прописная буква.
|
В подобной ситуации правильнее было бы проверять оба возможных варианта ввода, то есть и строчную и прописную буквы Y. Можно сделать это с помощью двух инструкций if. А можно использовать логический оператор ИЛИ, который выглядит как две вертикальные черты:
if (taxable == 'Y' || taxable == 'y')В данной инструкции сказано: «Если переменная taxable имеет значение Y ИЛИ y, то...» Таким образом, мы добьемся того, что товар будет рассматриваться как облагаемый налогом, если выполняется одно из этих двух условий. Если не выполняется ни одно из них, то есть пользователь ввел любой другой символ, товар будет считаться не облагаемым налогом. Условие должно быть целиком помещено в круглые скобки, причем имя переменной taxable следует повторить дважды. Запись условия как (taxable == 'Y' || 'y') приведет к ошибке компиляции.
Есть три логических оператора: ИЛИ (||), И (&&) и отрицания (!). Оператор ИЛИ означает, что для выполнения инструкции if достаточно истинности одного из двух (или обоих вместе) заданных условий. Оператор И указывает на то, что должны быть истинными оба условия одновременно. Оператор отрицания означает, что инструкция if выполняется, если некое условие оказалось ложным.
Операторы Ии ИЛИ можно использовать не только для проверки равенства переменной одному из двух значений (как мы уже делали), но и для тестирования значений различных переменных. Например, вы пишете программу, в которую вводится размер годового дохода пользователя и количество иждивенцев (Листинг 5).