True c что это
Перейти к содержимому

True c что это

  • автор:

true (C++)

Это ключевое слово является одним из двух значений для переменной типа bool или условного выражения (условное выражение теперь является истинным логическим выражением). Если i имеет тип bool , инструкция i = true; назначается true i .

Пример

// bool_true.cpp #include int main()

См. также

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

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

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

Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.

Отправить и просмотреть отзыв по

Истинные и ложные операторы — обрабатывают объекты как логическое значение

Оператор true возвращает логическое значение true , указывающее, что его операнду определенно верно, а false оператор возвращает bool значение true , указывающее, что его операнда определенно false.
Обратите внимание, что тип, реализующий оба true оператора, false должен соответствовать следующей семантике:

  • «Является ли этот объект истинным?» разрешает оператору true . Оператор возвращает, true true если объект имеет значение true . Ответ : «Да, этот объект имеет значение true».
  • «Является ли этот объект ложным?» разрешает оператору false . Оператор возвращает, false true если объект имеет значение false . Ответ : «Да, этот объект имеет значение false»

false Операторы true не гарантированно дополняют друг друга. То есть оба оператора true и false могут вернуть значение bool false для одного операнда. Если тип определяет один из этих двух операторов, он также должен определить другой оператор.

Используйте тип bool? , если вам нужно использовать трехзначную логику (например, при работе с базами данных, которые поддерживают трехзначный логический тип). В C# предоставляются операторы & и | , которые поддерживают троичную логику с операндами bool? . См. подробнее о логических операторах, поддерживающих значение NULL в описании логических операторов.

Логические выражения

Тип с определенным оператором true может быть типом результата управляющего условного выражения в операторах if, do, while и for и условном операторе ?: . Дополнительные сведения см. в описании логических выражений в спецификации языка C#.

Пользовательские условные логические операторы

Если тип с определенными операторами true и false перегружает логические операторы OR | или AND & определенным образом, условные логические операторы OR || или AND && соответственно могут вычисляться для операндов этого типа. Дополнительные сведения см. в разделе Пользовательские условные логические операторы в Спецификации языка C#.

Пример

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

public struct LaunchStatus < public static readonly LaunchStatus Green = new LaunchStatus(0); public static readonly LaunchStatus Yellow = new LaunchStatus(1); public static readonly LaunchStatus Red = new LaunchStatus(2); private int status; private LaunchStatus(int status) < this.status = status; >public static bool operator true(LaunchStatus x) => x == Green || x == Yellow; public static bool operator false(LaunchStatus x) => x == Red; public static LaunchStatus operator &(LaunchStatus x, LaunchStatus y) < if (x == Red || y == Red || (x == Yellow && y == Yellow)) < return Red; >if (x == Yellow || y == Yellow) < return Yellow; >return Green; > public static bool operator ==(LaunchStatus x, LaunchStatus y) => x.status == y.status; public static bool operator !=(LaunchStatus x, LaunchStatus y) => !(x == y); public override bool Equals(object obj) => obj is LaunchStatus other && this == other; public override int GetHashCode() => status; > public class LaunchStatusTest < public static void Main() < LaunchStatus okToLaunch = GetFuelLaunchStatus() && GetNavigationLaunchStatus(); Console.WriteLine(okToLaunch ? "Ready to go!" : "Wait!"); >static LaunchStatus GetFuelLaunchStatus() < Console.WriteLine("Getting fuel launch status. "); return LaunchStatus.Red; >static LaunchStatus GetNavigationLaunchStatus() < Console.WriteLine("Getting navigation launch status. "); return LaunchStatus.Yellow; >> 

Обратите внимание на поведение сокращенного вычисления оператора && . GetFuelLaunchStatus Когда метод возвращается LaunchStatus.Red , правый операн && оператора не вычисляется. Это обусловлено тем, что LaunchStatus.Red имеет значение false. Результат логического оператора И не зависит от значения правого операнда. Выходные данные примера могут быть следующими:

Getting fuel launch status. Wait! 

См. также

Совместная работа с нами на GitHub

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

bool тип данных в языке Си.

В языке Си нет типа данных bool и значений true и false.

В заголовочном файле определены макросы bool, true и false, которые позволяют использовать синтаксис аналогичный языку C++.

 #include // prinf() #include // bool, true, false int main() < int counter = 0; bool flag = true; while(flag)< if(counter == 5)< flag = false; >printf("counter = %d, flag = %d \n", counter, flag); counter++; > return 0; > 

Значение true = 1, а false = 0. Оператор if выполняется при любом ненулевом значении в скобках оператора.

 #include // printf() #include // true, false int main() < printf("true = %d, false = %d \n", true, false); // true = 1, false = 0 if(-1)< // Будет выведено "only 0 == false" printf("only 0 == false \n"); // Любое ненулевое значение это true (срабатывание if) >> 

Понравилась страница?
Добавить в закладки
Или поделиться!

True c что это

Условные выражения представляют собой некоторое условие и возвращают значение типа bool , то есть значение true (если условие истинно), либо значение false (если условие ложно). К условным выражениям относятся операции сравнения и логические операции.

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

В языке программирования C++ есть следующие операции сравнения:

    == Операция «равно». Возвращает true, если оба операнда равны, и false, если они не равны:

int a ; int b ; bool c ; // false bool d ; // true
int a ; int b ; bool c b>; // true
bool c ; // false
bool c = 10 
bool c = 10 >= 4; // true bool d = 10 >= 14; // false
bool c ; // true bool d = 4 != 4; // false

Стоит отметить, что если мы выводим значение типа bool на консоль, то по умолчанию на консоль выводится 1 (если true) и 0 (если false):

#include int main() < int a ; int b ; bool c ; // false bool d ; // true std::cout std::boolalpha:

#include int main() < int a ; int b ; bool c ; // false bool d ; // true std::cout ! (операция отрицания)

Унарная операция, которая возвращает true, если операнд равен false. Если операнд равен true, операция возвращает false.

bool a ; bool b ; // false bool c ; // true
bool a ; bool b ; bool c ; // false bool d ; // true
bool a ; bool b ; bool c ; // true bool d ; // false
bool a ; bool b ; bool c ; // true bool d ; // false bool d ; // false

Логические операции удобно применять для объединения операций сравнения или других логических операций:

#include int main() < int a ; int b ; bool result1 = a ==5 && b > 8; // если и a ==5, и b > 8 bool result2 = a ==5 || b > 8; // если или a ==5, или b > 8 (или оба варианты истины) bool result3 = a ==5 ^ b > 8; // если оба операнда возвращают разные значения std::cout 8) - " 8) - " 8) - "

Стоит учитывать, что операции сравнения имеют больший приоритет, чем логические операции. Поэтому в выражении a ==5 && b > 8 вначале будут выполняться подвыражения - операции сравнения a ==5 и b > 8 , а затем собственно операция логического умножения.

В данном случае первое условие a ==5 && b > 8 будет истинно, если верны одновременно обе операции сравнения. А условие a ==5 || b > 8 будет верно, если хотя бы одна из операций сравнения возвращает true. Соответственно мы получим следующий консольный вывод:

(a ==5 && b > 8) - false (a ==5 || b > 8) - true (a ==5 ^ b > 8) - true

Стоит отметить, что логические операторы && и || представляют операторы сокращенного вычисления ( short-circuit evaluation ). Это значит, что если первый операнд операции достаточен для того, чтобы определить результат всей операции, то второй операнд не вычисляется. Так, возьмем следующую операцию:

int a ; int b ; bool result1 = a ==6 && b ==8;

Первый операнд, который представляет выражение a ==6 , возвращает false . В этом случае для операции && нет смысла вычислять второй операнд, поскольку результат операции в любом случае будет равен false .

Аналогично обстоит дело с операцией || :

int a ; int b ; bool result1 = a ==5 || b ==0;

Первый операнд, который представляет выражение a ==5 , возвращает true . В этом случае для операции || нет смысла вычислять второй операнд, поскольку результат операции в любом случае будет равен true .

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

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