Как обозначается или в c
Перейти к содержимому

Как обозначается или в c

  • автор:

Логические операторы в C

Логические операторы выполняют операции логического И ( && ) и логического ИЛИ ( || ).

Синтаксис

logical-AND-expression :
inclusive-OR-expression
logical-AND-expression && inclusive-OR-expression

logical-OR-expression :
logical-AND-expression
logical-OR-expression || logical-AND-expression

Комментарии

Логические операторы не выполняют обычных арифметических преобразований. Вместо этого они оценивают каждый операнд с точки зрения его эквивалентности нулю. Результатом логической операции является либо 0, либо 1. Результат имеет тип int .

Логические операторы C описываются ниже.

Оператор Описание
&& Логический оператор И создает значение 1, если оба операнда имеют ненулевое значение. Если любой из операндов имеет значение 0, результат равен 0. Если первый операнд операции логического И имеет значение 0, то второй операнд не вычисляется.
|| Оператор логического ИЛИ выполняет над своими операндами операцию включающего ИЛИ. Если оба операнда имеют значение 0, результат будет равен 0. Если любой из операндов имеет ненулевое значение, результат будет равен 1. Если первый операнд операции логического ИЛИ имеет ненулевое значение, то второй операнд не вычисляется.

Операнды выражений логического И и логического ИЛИ вычисляются слева направо. Если значения первого операнда достаточно, чтобы определить результат операции, второй операнд не вычисляется. Это называется сокращенным вычислением. После первого операнда в выражении есть точка последовательности. Дополнительные сведения см. в статье Точки следования C.

Примеры

В следующем примере показано использование логических операторов.

int w, x, y, z; if ( x < y && y < z ) printf( "x is less than z\n" ); 
printf( "%d" , (x == w || x == y || x == z) ); 

В этом примере, если x равно w , y или z , то второй аргумент функции printf имеет значение true и код выводит значение 1. В противном случае он возвращает значение false и код выводит значение 0. Как только обнаруживается, что одно из значений равно true, вычисление прекращается.

См. также

  • Логический оператор И: &&
  • Логический оператор ИЛИ: ||

Обратная связь

Были ли сведения на этой странице полезными?

Логические операторы в C

Логические операторы выполняют операции логического И ( && ) и логического ИЛИ ( || ).

Синтаксис

logical-AND-expression :
inclusive-OR-expression
logical-AND-expression && inclusive-OR-expression

logical-OR-expression :
logical-AND-expression
logical-OR-expression || logical-AND-expression

Комментарии

Логические операторы не выполняют обычных арифметических преобразований. Вместо этого они оценивают каждый операнд с точки зрения его эквивалентности нулю. Результатом логической операции является либо 0, либо 1. Результат имеет тип int .

Логические операторы C описываются ниже.

Оператор Описание
&& Логический оператор И создает значение 1, если оба операнда имеют ненулевое значение. Если любой из операндов имеет значение 0, результат равен 0. Если первый операнд операции логического И имеет значение 0, то второй операнд не вычисляется.
|| Оператор логического ИЛИ выполняет над своими операндами операцию включающего ИЛИ. Если оба операнда имеют значение 0, результат будет равен 0. Если любой из операндов имеет ненулевое значение, результат будет равен 1. Если первый операнд операции логического ИЛИ имеет ненулевое значение, то второй операнд не вычисляется.

Операнды выражений логического И и логического ИЛИ вычисляются слева направо. Если значения первого операнда достаточно, чтобы определить результат операции, второй операнд не вычисляется. Это называется сокращенным вычислением. После первого операнда в выражении есть точка последовательности. Дополнительные сведения см. в статье Точки следования C.

Примеры

В следующем примере показано использование логических операторов.

int w, x, y, z; if ( x < y && y < z ) printf( "x is less than z\n" ); 
printf( "%d" , (x == w || x == y || x == z) ); 

В этом примере, если x равно w , y или z , то второй аргумент функции printf имеет значение true и код выводит значение 1. В противном случае он возвращает значение false и код выводит значение 0. Как только обнаруживается, что одно из значений равно true, вычисление прекращается.

См. также

  • Логический оператор И: &&
  • Логический оператор ИЛИ: ||

Обратная связь

Были ли сведения на этой странице полезными?

Логический оператор OR: ||

Логический оператор OR ( || ) возвращает логическое значение true , если оба операнда являются true и возвращаются false в противном случае. Операнды неявно преобразуются в тип bool перед оценкой, а результат — тип bool . Логическое ИЛИ имеет ассоциативность в направлении слева направо.

Операнды для логического оператора OR не должны иметь одинаковый тип, но они должны иметь логический, целочисленный или указательный тип. В качестве операндов часто используются реляционные выражения и выражения равенства.

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

Второй операнд вычисляется только в том случае, если первый операнд вычисляется false , так как оценка не требуется, если логическое выражение OR не требуется true . Это называется кратковременной оценкой.

printf( "%d" , (x == w || x == y || x == z) ); 

В приведенном выше примере, если x равно w либо , y либо z второй аргумент функции printf вычисляется true , который затем повышен до целого числа, а значение 1 выводится. В противном случае оно вычисляется false и выводится значение 0. Как только одно из условий оценивается true , оценка останавливается.

Оператор ключевое слово для ||

C++ указывает or в качестве альтернативной орфографии для || . В C альтернативная орфография предоставляется в виде макроса в заголовке . В C++альтернативная орфография является ключевое слово; или эквивалентное не рекомендуется. В Microsoft C++ /permissive- параметр или /Za компилятор требуется для включения альтернативной орфографии.

Пример

// expre_Logical_OR_Operator.cpp // compile with: /EHsc // Demonstrate logical OR #include using namespace std; int main() < int a = 5, b = 10, c = 15; cout c yields " c) b || b > c yields " b || b > c)

Как обозначается или в c

Условные операции позволяют проверить истинность некоторого условия и оперируют понятиями "истина"/"верно" и "ложь"/"неверно". Причем "истина" (условие верно) соответствует значению 1, а "ложь" (условие не верно) - значению 0. К условным операциям относят операции сравнения и логические операции. Оба этих вида операций применяются к арифметическим операндам, то есть числам. .

Операции сравнения

Операции сравнения (еще называют операциями отношения) позволяют сравнить два значения и возвращают 1 , если выражение истинно, и 0 , если выражение ложно. В языке Си есть следующие операции сравнения:

    == Операция "равно". Возвращает 1, если оба операнда равны, и 0, если они не равны:

#include int main(void) < int a = 10; int b = 4; int c = a == b; // 0 - числа НЕ равны printf("c = %d \n", c); // c = 0 int num = 5; int result = num == 2 + 3; // 1 - числа равны printf("result = %d \n", result); // result = 1 return 0; >
int c = 10 != 4; // 1 int d = 4 != 4; // 0
int a = 10; int b = 4; int c = a > b; // 1
int c = 10 < 4; // 0
int c = 10 
int c = 10 >= 4; // 1

Как правило, операции отношения применяются в условных конструкциях типа if. else, которые мы далее рассмотрим.

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

Логические операции, как правило, применяются к отношениям и объединяют несколько операций отношения. К логическим операциям относят следующие:

    ! (операция отрицания) Если операнд равен 0, то возвращает 1, иначе возвращает 0.

int c = !2; // 0 int d = !0; // 1
int c = -2 && 5; // 1 int d = 0 && 7; // 0
int c = -2 || 5; // 1 int d = 0 || 7; // 1 int e = 0 || 0; // 0

Используем одновременно несколько логических операций и операций сравнения:

int a = -2 > 5; // 0 int b = 0 < 7; // 1 int c = 0 == 0; // 1 int d = a && b || c; // 1 printf("a = %d \n", a); printf("b = %d \n", b); printf("c = %d \n", c); printf("d = %d \n", d);

Операции сравнения имеют больший приоритет, чем логические операции, поэтому мы могли бы напрямую подставить операции сравнения:

int d = -2 > 5 && 0 < 7 || 0 == 0; // 1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *