Работает ли оператор NOT, если (! Value), так же, как в булевой алгебре / логике высказываний?
Этот вопрос касается понимания того, как язык интерпретирует операторы if. я знаю это if(a)
проверяет правдивость a
,
Однако, когда мы используем оператор NOT, например:
if (!a) {
...
}
Работает ли он так же, как оператор NOT в булевой алгебре, т.е.
----------
| a | !a |
----------
| T | F |
| F | T |
----------
и все еще проверять на правдивость, или это меняет условие успеха на ложное?
Это несущественно во всех случаях, так как это приведет к тому, что независимо от реализации произойдет одно и то же, но я чувствую, что это помогло бы мне писать лучше, если заявления / лучше их понимают.
Например, если мы посмотрим на следующее утверждение if:
if (!(a && b))
и таблица правды:
----------------------------
| a | b | a & b | !(a & b) |
----------------------------
| T | T | T | F |
| T | F | F | T |
| F | T | F | T |
| F | F | F | T |
----------------------------
Мы можем видеть, что это немного сложнее - поэтому, зная, могу ли я всегда полагаться на таблицу истинности, чтобы обеспечить надлежащую функциональность моего оператора if, я бы сильно запутался.
Чтобы попытаться угадать, я предполагаю, что условие успеха всегда true
и что оператор NOT работает точно так же, как оператор NOT логических алгебр, просто инвертируя текущее значение.
Это правильно?
Благодарю.
1 ответ
Логическое НЕ:
"!" Оператор возвращает true, когда рассматриваемое условие не выполняется. В противном случае возвращается false.
Например,
!A returns true if A is false, i.e. when A=0.
Он всегда меняет логическое состояние своего операнда. Если условие истинно, то оператор Логический НЕ сделает его ложным.