Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
part1.doc
Скачиваний:
2
Добавлен:
14.04.2019
Размер:
337.41 Кб
Скачать

Логические операции

Имеется также три логические операции: И (&&), ИЛИ (||) и НЕ(!).Логические операции работают с логическими значениями (истина или ложь) и позволяют составлять логические выражения.

- Эти логические операторы всегда дают в результате значение либо 0 (ложь), либо 1 (истина).

- Логические операторы && и !! известны как операторы типа "short circuit". Выполнение операторов такого типа прекращается, как только становится ясно, будет ли результат иметь значение истина или ложь. Предположим, что вы имеете выражение вида:

exp1 && exp2

Если exp1 - ложь, значит и все выражение ложь. Таким образом, exp2 никогда не будет вычисляться. Аналогично, если мы имеем выражение вида

exp1 !! exp2

то exp2 никогда не будет вычисляться, если exp1 верно.

Дополнительные сведения о выражениях

Прежде чем перейти к обсуждению операторов цикла, мы дадим некоторые комментарии к использованию выражений. Такие выражения, как (b == 0.0) и (a <= q*r) довольно привлекательны по своей красоте. Однако Си допускает написание более сложных и запутанных конструкций, чем эти.

Операторы присваивания

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

Например, выражение (sum = 5+3) имеет значение 8, поэтому выражение ((sum = 5+3) <= 10) будет всегда иметь значение "истина" (т.к. 8 <= 10). Следующий пример:

if ((ch=getch()) = = 'q')

puts("До свидания! Программа завершена \n");

else

puts("Продолжаем работу! \n");

Как работает эта конструкция? Если в программе используется выражение ((ch=getch()) = = 'q'), то она, дойдя до него, останавливается и переходит в состояние ожидания ввода символа с клавиатуры. После того, как вы введете символ, осуществляется присваивание введенного символа переменной ch и выполняется сравнение введенного символа с символом 'q'. Если введенный символ равен 'q', то на экран будет выведено сообщение "До свидания! Программа завершена", в противном случае будет выведено сообщение "Продолжаем работу!".

Оператор запятая

Вы можете использовать оператор запятая (,) для организации множественных выражений, расположенных внутри круглых скобок. Выражение внутри скобок вычисляется слева направо, и все выражение принимает значение, которое было вычислено последним. Например, если oldch и ch имеют тип char, то выражение (oldch = ch, ch = getch()) присваивает переменной oldch значение ch, затем считывает символ, вводимый с клавиатуры, и запоминает его в ch. Результатом всего выражения, в итоге, будет значение введенного с клавиатуры символа. Приведем еще один пример:

ch='a';

if((oldch = ch, ch = 'b') == 'a')

puts("Это символ 'a'\n");

else

puts("Это символ 'b'\n");

Как вы считаете, какое сообщение будет выведено на экран вашего дисплея в результате выполнения приведенной выше программы?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]