Что означает true и false
Перейти к содержимому

Что означает true и false

  • автор:

printТип BOOLEAN

Тип BOOLEAN в тех языках, где он явно поддерживается, содержит два значения – TRUE (истина) и FALSE (ложь). Несмотря на то, что для хранения значений этого типа теоретически достаточно одного бита, обычно в реализациях переменные этого типа занимают один байт памяти. Для всех типов данных, для которых определены операции сравнения, определены также и правила, по которым эти операции сравнения вырабатывают булевские значения. Над булевскими значениями возможны операции конъюнкции (&& или AND), дизъюнкции (|| или OR) и отрицания (~ или NOT), определяемые следующими таблицами истинности:

TRUE AND TRUE = TRUE
TRUE AND FALSE = FALSE
FALSE AND TRUE = FALSE
FALSE AND FALSE = FALSE

TRUE OR TRUE = TRUE
TRUE OR FALSE = TRUE
FALSE OR TRUE = TRUE
FALSE OR FALSE = FALSE

NOT FALSE = TRUE
NOT TRUE = FALSE

В языках линии Си прямая поддержка булевского типа данных отсутствует, но имеется логическая интерпретация значений целых типов. Значением операции сравнения может быть 0 (FALSE) или 1 (TRUE). Значение целого типа 0 интерпретируется как FALSE, а значения, отличные от нуля, – как TRUE. В остальном все работает как в случае наличия явной поддержки булевского типа.

Операторы true и false — обрабатывают объекты как логическое значение.

Оператор true возвращает значение bool true , указывая, что его операнд имеет значение true. Оператор false возвращает значение bool true , указывая, что его операнд имеет значение false. Операторы true и false не обязательно дополняют друг друга. То есть оба оператора 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! 

См. также раздел

  • справочник по C#
  • Операторы и выражения C#

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

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

Функции true и false

Две функции true и false возвращают тождественную «истину» и тождественную «ложь» соответственно. В XPath нет констант и, тем более, логических констант, определяющих «истину» и «ложь», как в других языках. Функции true и false восполняют эту нехватку.

true() or $var ? true

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

false() and $var ? false

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

Читайте также

Функции

Функции Портативные компьютеры способны выполнять все те же задачи, что и настольные компьютеры, хотя при равной цене производительность ноутбука будет существенно ниже. Ноутбуки содержат компоненты, подобные тем, которые установлены в настольных компьютерах, и

Функции

Функции Существует мнемоническое правило: функции не должны по объему кода превышать двух экранов текста и иметь больше десяти локальных переменных. Каждая функция должна выполнять одно действие, но делать это хорошо. Не вредно разбить функцию на последовательность

false()

false() Функция false возвращает ложь. Она применяется следующим образом:boolean false()В XPath не определены логические константы, поэтому для того чтобы присвоить переменной значение false, нужно прибегнуть к функции false. (С переменными вы познакомитесь в главе

true()

true() Функция true возвращает значение true. Она применяется следующим образом:boolean true()В XPath не определены логические константы, поэтому для того чтобы присвоить переменной значение true, нужно прибегнуть к функции true. (С переменными вы познакомитесь в главе

Функции

Функции Функция — это особым образом написанный и оформленный фрагмент кода JavaScript, который можно вызвать из любого Web-сценария на данной Web- странице (повторно используемый код, как его часто называют). Так что, если ка- кой-то фрагмент кода встречается в нескольких местах

5.8.7 Функции

5.8.7 Функции СинтаксисОболочка bash позволяет пользователю создавать собственные функции. Функции ведут себя и используются точно так же, как обычные команды оболочки, т. е. мы можем сами создавать новые команды. Функции конструируются следующим образом: function name () Причем

19.7.8. Функции

19.7.8. Функции Описание функции выглядит так: имя() < список; >Пример:cdir()< # изменяем каталог cd / >При выполнении функция не создает нового процесса, а выполняется в среде процесса, содержащего эту функцию. Аргументы функции можно передать ей как обыкновенные параметры при

Получаем образ диска с помощью программы Acronis True Image

Получаем образ диска с помощью программы Acronis True Image Программа Acronis True Image — самая популярная в своей области, поэтому мы будем использовать именно ее. Помимо восстановления логического раздела диска, она обладает и другими не менее важными функциями, к которым мы вернемся

Совет 21. Следите за тем, чтобы функции сравнения возвращали false в случае равенства

Совет 21. Следите за тем, чтобы функции сравнения возвращали false в случае равенства Сейчас я покажу вам нечто любопытное. Создайте контейнер set с типом сравнения less_equal и вставьте в него число 10:set<int,less_equal<int> > s; // Контейнер s сортируется по критерию «<=»s.insert(10); // Вставка

4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации

4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации Раздел «4.5.2. Функции Geometry» обсуждает несколько функций, которые создают новые конфигурации из

Функции

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

7. Функции

7. Функции Мы рассмотрели, как объявлять переменные (глава 3), как писать выражения (глава 4) и инструкции (глава 5). Здесь мы покажем, как группировать эти компоненты в определения функций, чтобы облегчить их многократное использование внутри программы. Мы увидим, как

Функции

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

Тип Boolean, логические операторы и операторы сравнения

Логический тип Boolean в JavaScript представляет одно из двух значений: true (истина) или false (ложь).

Значения Boolean

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

  • ДА / НЕТ
  • ВКЛ / ВЫКЛ
  • ИСТИНА / ЛОЖЬ

Именно для этих случаев в JavaScript существует логический тип данных Boolean, который может принимать только значение true (истина) или false (ложь).

Функция Boolean()

Чтобы определить, является ли выражение (или переменная) истиной (возвращает значение true), можно воспользоваться функцией Boolean():

 Boolean(10 > 9) // возвращает true 

Или можно сделать еще проще:

 (10 > 9) // также возвращает true 10 > 9 // также возвращает true 

Все имеет «значение» True или False

Любое значение отличное от 0 имеет логическое значение true.

 // следующие выражения возвращают true Boolean(100) Boolean( 3.14) Boolean(-15) Boolean("Hello") Boolean("false") Boolean(7 + 1 + 3.14) 

Логическое значение 0 (ноль) — false.

 var x = 0; Boolean(x); // возвращает false 

Логическое значение -0 (минус ноль) — false.

 var x = -0; Boolean(x); // возвращает false 

Логическое значение «» (пустая строка) — false.

 var x = ""; Boolean(x); // возвращает false 

Логическое значение undefined — false.

 var x; Boolean(x); // возвращает false 

Логическое значение null — false.

 var x = null; Boolean(x); // возвращает false 

Логическое значение false — false.

 var x = false; Boolean(x); // возвращает false 

Логическое значение NaN — false.

 var x = 10 / "H"; Boolean(x); // возвращает false 

Значения типа Boolean могут быть объектами

Обычно, логические значения типа Boolean определяются примитивными литералами:

 var x = false; 

Однако, в JavaScript при помощи ключевого слова new логические значения также можно определить и как объекты:

 var y = new Boolean(false); 
 var x = false; var y = new Boolean(false); // typeof x вернет тип boolean // typeof y вернет тип object 

Тем не менее, не определяйте значения типа Boolean как объекты. Это замедляет скорость выполнения скрипта. Кроме этого, ключевое слово new в данном случае усложняет код и может привести к неожиданным результатам:

При использовании оператора сравнения ==, одинаковые значения типа Boolean равны:

 var x = false; var y = new Boolean(false); // (x == y) будет истинным (true), потому что x и y имеют равные значения 

Однако, при использовании оператора сравнения ===, одинаковые значения типа Boolean не будут равными, потому что оператор === ожидает совпадения как по значению, так и по типу.

 var x = false; var y = new Boolean(false); // (x === y) будет ложным (false), потому что x и y не равны по типу (boolean и object) 

Или еще хуже. Объекты не сравниваются:

 var x = new Boolean(false); var y = new Boolean(false); // (x == y) - false, потому что x и y разные объекты 

Обратите внимание на разницу между (x==y) и (x===y).

Сравнение двух объектов JavaScript всегда возвращает ложь (false).

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

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

Значения типа Boolean лежат в основе всех сравнений и условий в JavaScript.

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

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

Предположим, что у нас есть x = 5. Следующая таблица объясняет операторы сравнения:

Оператор Описание Выражение Возвращает
== равно x == 8
x == 5
x == «5»
false
true
true
=== равно по значению и типу x === 5
x === «5»
true
false
!= не равно x != 8 true
!== не равно ни по значению, ни по типу x !== 8
x !== 5
x !== «5»
true
false
true
> больше чем x > 8 false
меньше чем x < 8 true
>= больше или равно x >= 8 false
меньше или равно x

true

Как это можно использовать

Операторы сравнения используются в выражениях условий для сравнения значений и принятия решения в зависимости от полученного результата:

 if (age < 18) text = "Слишком молод"; 

Подробнее об условных выражениях будет рассказано в следующей главе этого учебника.

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

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

Предположим, у нас есть x = 6 и y = 3. Следующая таблица объясняет логические операторы:

Оператор Описание Пример
&& И (x < 10 && y >1) - true
|| ИЛИ (x == 5 || y == 5) - false
! НЕ !(x == y) - true

Оператор ! также используется для быстрого преобразования выражения к логическому значению:

 !!"string" = true !!null = false 

Условный (тернарный) оператор

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

имя_переменной= (условие) ?значение1:значение2

 var voteable = (age < 18) ? "Слишком молод" : "Возраст подходит"; 

В данном примере если в переменной age значение меньше 18, то переменной voteable будет присвоена строка "Слишком молод", в обратном случае переменной voteable будет присвоена строка "Возраст подходит".

Сравнение разных типов

Сравнение данных разного типа может привести к неожиданным результатам.

При сравнении строки и числа JavaScript будет преобразовывать строку в числовое значение. Пустая строка преобразуется в 0. Не числовая строка преобразуется в значение NaN, которое всегда равно false.

Выражение Значение
2 < 12 true
2 < "12" true
2 < "John" false
2 > "John" false
2 == "John" false
"2" < "12" false
"2" > "12" true
"2" == "12" false

При сравнении двух строк значение строки "2" будет больше значения строки "12", потому что в алфавитной последовательности 1 меньше 2.

Чтобы обезопасить результаты сравнения, переменные следует привести к надлежащему типу:

 age = Number(age); if (isNaN(age)) < voteable = "Введенное значение не является числом"; >else

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

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