Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&&;java中的and | |运算符_Java_Operator Keyword - Fatal编程技术网

&&;java中的and | |运算符

&&;java中的and | |运算符,java,operator-keyword,Java,Operator Keyword,此代码打印“是”。表示首先执行“||” 这本书错了吗?或者我的解释错了。我想你的解释错了。由于&&具有更高的优先级,因此计算顺序为 if(true&&false||true) { System.out.println("yes"); } 那是 (true && false) || true 我想你的解释是错误的。由于&&具有更高的优先级,因此计算顺序为 if(true&&false||true) { System.ou

此代码打印
“是”
。表示首先执行
“||”


这本书错了吗?或者我的解释错了。

我想你的解释错了。由于
&&
具有更高的优先级,因此计算顺序为

  if(true&&false||true)
{
    System.out.println("yes");
}
那是

(true && false) || true 

我想你的解释是错误的。由于
&&
具有更高的优先级,因此计算顺序为

  if(true&&false||true)
{
    System.out.println("yes");
}
那是

(true && false) || true 

你的口译被取消了。如果我们遵循这本书,您的If语句可以重新编写并保持相同的含义

false || true -> true

现在很容易看出,这实际上是正确的,因此打印“是”。

您的解释是错误的。如果我们遵循这本书,您的If语句可以重新编写并保持相同的含义

false || true -> true
现在很容易看出,这实际上是真的,因此打印出“是”

  • true&&false
    =>
    false
  • false | | true
    =>
    true
  • 因此,没有问题,因为and语句首先执行,然后是or语句。代码的预期结果是

  • true&&false
    =>
    false
  • false | | true
    =>
    true

  • 因此,没有问题,因为and语句首先执行,然后是or语句。代码的预期结果是
    yes

    您的解释是错误的

    true&&false->false

    false | | true->true


    预计会打印“是”

    您的解释是错误的

    true&&false->false

    false | | true->true

    如果(真和假)=>
    如果(假)
    =>
    如果(假)
    如果(真),它将打印“是”

    if(真)


    和真值表:

    if( (true && false) || true)
    
     F & F = F
     T & F = F
     F & T = F
     T & T = T
    
    或真值表:

    if( (true && false) || true)
    
     F & F = F
     T & F = F
     F & T = F
     T & T = T
    
    if(true&&false | | true)
    =>
    if(false | | true)
    =>
    if(true)


    和真值表:

    if( (true && false) || true)
    
     F & F = F
     T & F = F
     F & T = F
     T & T = T
    
    或真值表:

    if( (true && false) || true)
    
     F & F = F
     T & F = F
     F & T = F
     T & T = T
    

    仔细观察,因为它们是短路的

    因此,第一部分:

     F | F = F
     T | F = T
     F | T = T
     T | T = T
    
    那么你有:

     true&&false // evaluates to false
    

    第一部分为假,但第二部分可能为真(事实上也是如此),因此它会检查第二部分,发现它为真,从而返回真

    因此,第一部分:

     F | F = F
     T | F = T
     F | T = T
     T | T = T
    
    那么你有:

     true&&false // evaluates to false
    

    第一部分为假,但第二部分可能为真(事实上也是如此),因此它会移动来检查第二部分,查看它是否为真,从而返回真如果更改表示形式,您可以更清楚地看到它,例如:

     false || true
    
    如果
    &
    优先,则您有
    (true | | |(true&&false))
    这将为真,因此将打印“是”

    如果
    | |
    开始,您将拥有
    ((真| |真)和&false)
    这将是错误的,并将打印出“否”


    如果运行上述代码,您将看到结果为“yes”,因此
    &&&
    具有相关性。

    如果更改表示形式,您可以更清楚地看到它,例如:

     false || true
    
    如果
    &
    优先,则您有
    (true | | |(true&&false))
    这将为真,因此将打印“是”

    如果
    | |
    开始,您将拥有
    ((真| |真)和&false)
    这将是错误的,并将打印出“否”


    如果您运行上述代码,您将看到结果为“yes”,因此
    &&&
    具有优先性。

    首先计算&&&。。。但“or”| |的一面为真,因此整个表达式的计算结果为“真”


    首先计算&&。。。但“or”| |的一面为真,因此整个表达式的计算结果为“真”

    这不是一个有效的测试。(真与假)=假。false | | true==true。这不是有效的测试。(真与假)=假。假| |真==真。