- •Разработка программы нахождения максимального или минимального элементов в массиве
- •Основные операции, операторы ветвления и циклов
- •Арифметические выражения
- •Логические выражения
- •Приоритеты (порядок) выполнения операций
- •Порядок вычислений
- •Выбор вариантов
- •Условные операторы
- •Оператор ветвления (проверки условия) if
- •If (выражение1)
- •If (выражение2)
- •Операция условия
- •Выражение1 ? выражение2 : выражение3
- •Множественный выбор: оператор switch
- •Операторы циклов
- •Оператор цикла while
- •Оператор цикла for
- •Оператор цикла do while
- •Вложенные циклы
- •Другие управляющие операторы
- •Оператор break
- •Оператор continue
- •Оператор goto
- •Организация ввода элементов массивов
- •Задача поиска минимального (максимального) значения
-
Логические выражения
Операции отношения используются для сравнений и применяются при формировании выражений условия ("логических выражений"). При программировании на Си используются:
< меньше
<= меньше или равно
= = равно
>= больше или равно
> больше
!= не равно
С помощью этих операций величина слева от знака операции сравнивается с величиной справа от него:
a < b
c >= 0
Результатом вычисления операции отношения будет 0 ("ложь") или 1 ("истина"). Более того, в качестве "истины" принимается любое значение, не равное 0!
Не путайте оператор присваивания (=) и операцию отношения "равно" (= =)! Это совершенно разные действия:
cnn = 3; – присваивает значение 3 переменной cnn;
cnn = = 3; – проверяет, равняется ли значение переменной cnn числу 3.
Простое логическое выражение состоит из знака операции отношения и операндов, расположенных слева и справа от него. Однако иногда (и довольно часто) требуется объединить два или более простых логических выражения. Для этого в языке Си имеются три логические операции:
-
Операция
Смысл
&&
И
||
ИЛИ
!
НЕ
Предположим, что expr1 и expr2 – два простых логических выражения типа cat > rat или debt == 1000. Тогда
-
expr1 && expr2 истинно в том и только в том случае, когда оба выражения expr1 и expr2 истинны.
-
expr1 || expr2 истинно в том случае, если какое-нибудь из выражений expr1 или expr2 истинно или оба истинны.
-
!expr1 истинно, если выражение expr1 ложно, и наоборот.
Примеры:
5 > 2 && 4 > 7 – ложно, поскольку истинно только одно подвыражение;
5 > 2 || 4 > 7 – истинно, поскольку по крайней мере одно из подвыражений истинно;
!( 4 > 7 ) – истинно, потому что 4 не больше 7. Это выражение эквивалентно обратному условию: 4 <= 7
Математическое двойное неравенство a c < d на языке Си будет выглядеть следующим образом:
a <= c && c < d
-
Приоритеты (порядок) выполнения операций
Операция ! имеет очень высокий приоритет, он выше, чем у умножения, такой же, как у операции увеличения, и только круглые скобки имеют более высокий приоритет. Приоритет операции && выше, чем операции ||, а обе они имеют более низкий приоритет, чем операции отношения, но более высокий, чем операция присваивания. Поэтому выражение
a > b && b > c || b > d
будет интерпретировано так:
((a > b) && (b > c)) || (b > d)
т.е. b содержится между с и а или b больше d.
|
Список операций по старшинству (от высокого приоритета к низкому) |
|
!, ++,- -, -, & (адрес), * (указатель) |
|
*, /, % |
|
+, - |
|
<, <=, >, >= |
|
= =, != |
|
&& |
|
| | |
|
?: |
|
=, +=, -=, *=, /= |
-
Порядок вычислений
Логические выражения вычисляются слева направо; вычисления прекращаются, как только устанавливается истинность или ложность всего выражения. Пример:
num != 0 && 10/num == 1
Если значение переменной num равно 0, то все выражение ложно, и поэтому дальнейшее вычисление данного логического выражения прекращается. Это избавляет компьютер от последствий деления на нуль. Многие языки не обеспечивают выполнения подобного требования, и, выяснив, что num равно 0, компьютер переходит к проверке следующего условия, что скорее всего приведет к ошибке.
