为什么 `!!(a||!a)` 总是正确的?
Why is `!!(a||!a)` always true?
我是一名 Java 菜鸟,在学校我们有一些家庭作业。我将解释布尔术语,但我不理解其中一个。
问题是
Why is this expression always true?
!!(a||!a)
括号里的部分我看懂了,但是前面的两个感叹号是什么意思?
如果第一个 a = true --> !a = not true --> !! (双重否定 = 真?)a = 真,第二个 !a = 不真 --> !!a = 真 --> !!!a = 不真
如果我是对的,为什么这个表达式总是正确的?这打败了我。
你们谁能给我解释一下吗?
感谢您的帮助!
首先,!! expression
抵消:和expression
一样,因为取反的取反就是原值
所以我们剩下 a || ! a
,这是一个析取。因此,如果子表达式 a
或 !a
中至少有一个为真,则结果为 true
。
最后,如果 a
为真,则 a
为真 (duh)。如果 a
为假,则 ! a
为真。因此,无论 a
的值如何,整个表达式都为真。
如果“a”为 TRUE 添加“!a”为 FALSE
知道 a
是 true 而 !a
是 false (! 是为了否定;在这种情况下,否定真 -> 假)
如果 a||!a
表示 true 或 false,从该表达式中你得到 true...
你可以这样看:
!!(true)
.
双重否定的结果是什么? 正确。
然后,true(true) = (aka a||!a),最终使你的表达式 !!(a||!a)
always true.
如果“a”为假且“!a”为真
知道 a
是 false 而 !a
是 true (! 是为了否定;在这种情况下,否定假 -> 真)
如果 a||!a
表示 false 或 true,从该表达式中你得到 true...
你可以这样看:
!!(true)
.
双重否定的结果是什么? 正确。
然后,true(true) = (aka a||!a),最终使你的表达式 !!(a||!a)
always true.
!!(a||!a)
使用布尔代数的公理之一,双重否定可以抵消一切。
所以它相当于说 (a||!a)
。
假设,我们设置a = true
;许多编程语言使用条件语句的惰性评估,条件语句将评估为真并执行 if 语句主体内的任何内容。
如果我们设置 a = false
,则条件语句的右侧变为真...因为 !a
是 a == false, !a == true
.[=15 的反义词=]
我是一名 Java 菜鸟,在学校我们有一些家庭作业。我将解释布尔术语,但我不理解其中一个。
问题是
Why is this expression always true?
!!(a||!a)
括号里的部分我看懂了,但是前面的两个感叹号是什么意思?
如果第一个 a = true --> !a = not true --> !! (双重否定 = 真?)a = 真,第二个 !a = 不真 --> !!a = 真 --> !!!a = 不真
如果我是对的,为什么这个表达式总是正确的?这打败了我。
你们谁能给我解释一下吗?
感谢您的帮助!
首先,!! expression
抵消:和expression
一样,因为取反的取反就是原值
所以我们剩下 a || ! a
,这是一个析取。因此,如果子表达式 a
或 !a
中至少有一个为真,则结果为 true
。
最后,如果 a
为真,则 a
为真 (duh)。如果 a
为假,则 ! a
为真。因此,无论 a
的值如何,整个表达式都为真。
如果“a”为 TRUE 添加“!a”为 FALSE
知道 a
是 true 而 !a
是 false (! 是为了否定;在这种情况下,否定真 -> 假)
如果 a||!a
表示 true 或 false,从该表达式中你得到 true...
你可以这样看:
!!(true)
.
双重否定的结果是什么? 正确。
然后,true(true) = (aka a||!a),最终使你的表达式 !!(a||!a)
always true.
如果“a”为假且“!a”为真
知道 a
是 false 而 !a
是 true (! 是为了否定;在这种情况下,否定假 -> 真)
如果 a||!a
表示 false 或 true,从该表达式中你得到 true...
你可以这样看:
!!(true)
.
双重否定的结果是什么? 正确。
然后,true(true) = (aka a||!a),最终使你的表达式 !!(a||!a)
always true.
!!(a||!a)
使用布尔代数的公理之一,双重否定可以抵消一切。
所以它相当于说 (a||!a)
。
假设,我们设置a = true
;许多编程语言使用条件语句的惰性评估,条件语句将评估为真并执行 if 语句主体内的任何内容。
如果我们设置 a = false
,则条件语句的右侧变为真...因为 !a
是 a == false, !a == true
.[=15 的反义词=]