Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Програмиррование по СИ мои ответы на вопросы.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
306 Кб
Скачать
☆

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

Логические операции обычно используются с Булевыми (логическими) значения; эти операции возвращают Булево значение. Однако операции && и || в действительности возвращают значение одного из специфицированных операндов, поэтому, если эти операции используются с не-Булевыми значениями, они могут вернуть не-Булево значение. Логические операции перечислены в таблице.

Таблица 3.6 Логические операции

Операция

Использование

Описание

&&

expr1 && expr2

(Логическое И) Возвращает expr1, если может быть конвертировано в false; иначе возвращает expr2. Таким образом, при использовании с Булевыми значениями && возвращает true, если оба операнда true; иначе, возвращает false.

||

expr1 || expr2

(Логическое ИЛИ) Возвращает expr1, если может быть конвертировано в false; иначе возвращает expr2. Таким образом, при использовании с Булевыми значениями || возвращает true, если любой из операндов true; если оба false, возвращает false.

!

!expr

(Логическое НЕ) Возвращает false, если её единственный операнд может быть конвертирован в true; иначе возвращает true.

Для простоты программирования в языке С++ реализованы компактные операторы инкремента и декремента, т.е. увеличения и уменьшения значения переменной на 1 соответственно. Данные операторы могут быть записаны в виде

i + +; // операция инкремента

+ + i; // операция инкремента

i--; // операция декремента

--i; // операция декремента

Разницу между первой и второй формами записи данных операторов можно продемонстрировать на следующем примере:

int i=10,j=10;

int a = i++; //значение a = 10; i = 11;

int b = + + j; //значение b = 11; j = 11;

Из полученных результатов видно, что если оператор инкремента стоит после имени переменной, то сначала выполняется операция присваивания и только затем операция инкремента. Во втором случае наоборот, операция инкремента реализуется до присвоения результата другой переменной. Поэтому значение a = 10, а значение b = 11. В первом случае говорят о постпрефиксной форме, а во втором - о префиксной. Подобный приоритет операции инкремента остается справедливым и при использовании арифметических операций, например

int a1=4, a2=4;

double b = 2.4*++a1; //результат b = 12.0

double c = 2.4*a2++; //результат c = 9.6

Из приведенного примера видно, что операция инкремента (декремента)

обладает более высоким приоритетом, чем операция умножения (соответственно и деления). Для того чтобы изменить приоритеты используются круглые скобки.

Операция декремента действует аналогично операции инкремента с той лишь разницей, что она уменьшает значение переменной на 1.

5Операции сравнения, логические операции, побитовые операции.

Операция сравнения сравнивает операнды и возвращает значение, основанное на true/верности сравнения. Операнды могут быть числами или строками. Строки сравниваются на основе стандартного лексикографического (словарного) порядка с использованием Unicode-значений. В таблице даны операции сравнения.

Таблица 3.2 Операции сравнения

Операция

Описание

Примеры, возвращающие true1

Равно (==)

Возвращает true, если операнды равны. Если два операнда имеют разные типы, JavaScript пытается конвертировать операнды в значения, подходящие для сравнения.

3 == var1 "3" == var1 3 == '3'

Не равно (!=)

Возвращает true, если операнды не равны. Если два операнда имеют разные типы, JavaScript пытается конвертировать операнды в значения, подходящие для сравнения.

var1 != 4 var2 != "3"

Строго равно (===)

Возвращает true, если операнды равны и одного типа.

3 === var1

Строго не равно (!==)

Возвращает true, если операнды не равны и/или не одного типа.

var1 !== "3" 3 !== '3'

Больше (>)

Возвращает true, если левый операнд больше правого операнда.

var2 > var1

Больше или равно (>=)

Возвращает true, если левый операнд больше правого операнда или равен ему.

var2 >= var1 var1 >= 3

Меньше (<)

Возвращает true, если левый операнд меньше правого операнда.

var1 < var2

Меньше или равно (<=)

Возвращает true, если левый операнд меньше правого операнда или равен ему.