- •6 Глава 1
- •12 Глава 1
- •14 Глава 1
- •16 Глава 1
- •18 Глава 1
- •20 Глава 1
- •22 Глава 1
- •24 Глава 1
- •26 Глава 1
- •31 Глава 1
- •34 Глава 2
- •36 Глава 2
- •Puc. 2.4. Дополнительные опции консольного приложения Win32
- •38 Глава 2
- •40 Глава 2
- •42 Глава 2
- •44 Глава 2
- •48 Глава 2
- •50 Глава 2
- •52 Глава 2
- •54 Глава 2
- •56 Глава 2
- •58 Глава 2
- •60 Глава 2
- •62 Глава 2
- •64 Глава 2
- •66 Глава 2
- •68 Глава 2
- •70 Глава 2
- •74 Глава 2
- •76 Глава 2
- •79 Глава 2
- •82 Глава 2
- •84 Глава 2
- •86 Глава 2
- •88 Глава 2
- •92 Глава 2
- •94 Глава 2
- •96 Глава 2
- •98 Глава 2
- •103 Глава 2
- •105 Глава 2
- •107 Глава 2
- •110 Глава 2
- •115 Глава 3
- •119 Глава 3
- •121 Глава 3
- •123 Глава 3
- •125 Глава 3
- •129 Глава 3
- •131 Глава 3
- •133 Глава 3
- •139 Глава 3
- •141 Глава 3
- •143 Глава 3
- •145 Глава 3
- •148 Глава 3
- •150 Глава 3
- •155 Глава 3
- •165 Глава 4
- •168 Глава 4
- •170 Глава 4
- •173 Глава 4
- •175 Глава 4
- •178 Глава 4
- •184 Глава 4
- •186 Глава 4
- •188 Глава 4
- •190 Глава 4
- •192 Глава 4
- •194 Глава 4
- •198 Глава 4
- •201 Глава 5
- •203 Глава 5
- •205 Глава 5
- •207 Глава 5
- •213 Глава 5
- •217 Глава 5
- •219 Глава 5
- •221 Глава 5
- •223 Глава 5
- •225 Глава 5
- •227 Глава 5
- •232 Глава 5
- •234 Глава 5
- •236 Глава 5
123 Глава 3
такого проверочного условия может породить монстроподобную конструкцию опе- раторов if.
Простое и четкое решение обеспечивают логические операции. Применяя ло- гические операции, вы можете комбинировать серии сравнений в одно логическое выражение, так что в конечном итоге понадобится всего один оператор if — почти независимо от сложности набора условий, до тех пор, пока он сводится в конечном итоге к выбору из двух альтернатив (true или false).
Существуют всего три логических операции.
Логическое И
Операция логического И (&&) применяется тогда, когда есть два условия, и оба должны вернуть результат true, чтобы общий результат был равен true. Вы хотите быть богатым и здоровым. Например, вы можете использовать операцию && при про- верке принадлежности символа к буквам верхнего регистра; проверяемое значение должно быть больше или равно ' А' И меньше или равно ' Z '. Оба условия должны вернуть true, чтобы значение относилось к заглавным буквам.
Как и ранее, условия, комбинируемые логическими операциями, могут возвращать числовые значения. Помните, что ненулевые значения приводятся к true, а нулевые— к false.
Если вернуться к примеру, в котором проверяется значение типа char, сохранен- ное в переменной letter, то можно было бы заменить проверку с двумя оператора- ми i f на одну, использующую операцию:
Скобки внутри проверочного выражения условия i f гарантируют, что операции сравнения, вне всяких сомнений, будут выполнены первыми, и это делает весь опера- тор яснее. Здесь вывод сообщения произойдет только в том случае, если оба условия, объединенные операцией &&, окажутся истинными.
Как и в случае с бинарными операциями, о которых мы говорили в предыдущей главе, эффект применения каждой логической операции можно представить табли- цей истинности. Упомянутая таблица для && представлена в табл. 3.1.
Заголовки строк слева и заголовки столбцов сверху представляют значения ло- гических выражений, комбинируемых операцией &&. Таким образом, чтобы опреде- лить результат комбинации условия true с условием false, выберите строку с true слева, и столбец с false сверху, а на пересечении строки и столбца ищите результат (false). В действительности вам даже не нужна таблица истинности, поскольку все достаточно просто: операция && возвращает true, только если оба операнда равны true.
Решения
и циклы
Логическое ИЛИ
Операция логического ИЛИ (| |) применяется тогда, когда имеются два условия и нужно получить результат true, если любое из них или оба возвращают true. Напри- мер, банк может положительно оценить вашу кредитоспособность для получения за- йма, если ваш доход составляет не менее $100 ООО в год или же у вас есть $1 ООО ООО наличными. Это может быть проверено с помощью следующего оператора if:
Банковский клерк проявит любезность, когда любое из двух условий выполнено либо оба сразу. (Более подходящим вопросом был бы: "Почему вы хотите занять де- нег?". Вообще-то странно, что банки готовы одалживать деньги только тогда, когда вы в них совершенно не нуждаетесь.)
Таблица истинности для операции | | представлена в табл. 3.2.
Здесь также результат может быть выражен очень просто: результат false получа- ется только тогда, когда оба операнда операции | | равны false.
Логическое НЕ
Третья логическая операция — НЕ (!) — принимает один операнд типа bool и ин- вертирует его значение. Поэтому если значением переменной test является true, то ! test получит значение false. Если же test равно false, то 'test будет равно true. В качестве примера простого выражения, если х имеет значение 10, то выра- жение:
будет false, поскольку х > 5 соответствует true.
Можно применить операцию ! к любимому выражению Чарльза Диккенса:
Если это выражение возвращает true, то в результате вы получите нищету, по крайней мере, как только банк перестанет оплачивать подписанные вами чеки.
И, наконец, вы можете применять операцию ! к другим базовым типам данных. Предположим, что имеется переменная rate типа float, содержащая значение 3,2. По некоторой причине вы можете пожелать убедиться, что значение rate отличает- ся от нуля, в этом случае можно использовать следующее выражение:
Значение 3,2 отличается от нуля, а потому преобразуется в значение true типа bool, и результат всего выражения будет false.