Java 下面的布尔表达式将被计算为什么值!(错)及&;(5>;4)

Java 下面的布尔表达式将被计算为什么值!(错)及&;(5>;4),java,conditional-operator,Java,Conditional Operator,下面的布尔表达式将被计算为什么值 !(false) && (5 > 4) 我会认为它的评价是错误的,有人能解释发生了什么使它成为真的吗 我会认为它的评价是错误的,有人能解释发生了什么使它成为真的吗 &&计算其左侧操作数,如果该值为false,则结果为false;否则,它计算其右操作数并将该结果作为其结果。从 !(false) && (5 > 4) !(false)为真,因此: true && (5 > 4) 由于true不是

下面的布尔表达式将被计算为什么值

!(false) && (5 > 4)
我会认为它的评价是错误的,有人能解释发生了什么使它成为真的吗

我会认为它的评价是错误的,有人能解释发生了什么使它成为真的吗

&&
计算其左侧操作数,如果该值为false,则结果为
false
;否则,它计算其右操作数并将该结果作为其结果。从

!(false) && (5 > 4)
!(false)
,因此:

true && (5 > 4)
由于
true
不是false,
和&
计算右侧操作数:

(5 > 4)
(5>4)
也是
真的
,因此
&
结果是
真的

    !(false) && (5 > 4)
    
    !(false) = true //because of !(not) operator
    
    (5 > 4) = true
    
    so 
    
    true && true = true
    
  • 您正在使用
    &&
    运算符。这意味着你的第二个条件是 考虑过

  • 表示否定。否定
    false
    将给出
    true

  • 5>4
    始终为
    true

  • !(false) && (5 > 4)
    
    !(false) = true //because of !(not) operator
    
    (5 > 4) = true
    
    so 
    
    true && true = true
    
  • 因此,这里
    true&&true
    给出
    true


    • !(false)
      为true,而
      (5>4)
      也为
      true
      。您可以运行程序来查找。不清楚您为什么不能这样做。(对于前面JavaScript对这个问题的回答,我深表歉意。)