首页 > 解决方案 > 为什么 `!!(a||!a)` 总是正确的?

问题描述

我是一名 Java 菜鸟,在学校里我们有一些家庭作业。我将解释布尔术语,但我不明白其中之一。

问题是

为什么这个表达式总是正确的?

!!(a||!a)

我理解括号中的部分,但它前面的两个感叹号是什么意思?

如果第一个 a = true --> !a = not true --> !! (双重否定 = 真?) a = 真,第二个 !a = 不真 --> !!a = 真 --> !!!a = 不真

如果我是对的,为什么这个表达总是正确的?我被击败。

你们中的任何人都可以向我解释一下吗?

谢谢你的帮助!

标签: booleanboolean-logicboolean-expression

解决方案


如果 "a" 为 TRUE 添加 "!a" 为 FALSE

知道a真的还是!a的(! 用于否定;在这种情况下,否定 true -> false

Ifa||!a表示truefalse,从那个表达式中你得到true ...

你可以这样看: !!(true).

双重否定的结果是什么?。然后,true(true) = (aka a||!a)最终使您的表达式!!(a||!a) 始终为 true


如果 "a" 为 FALSE 且 "!a" 为 TRUE

知道a的并且!a真的! 用于否定;在这种情况下,否定 false -> true

Ifa||!a表示falsetrue,从那个表达式中你得到true ...

你可以这样看: !!(true).

双重否定的结果是什么?。然后,true(true) = (aka a||!a)最终使您的表达式!!(a||!a) 始终为 true


推荐阅读