有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么返回真值?

我最近开始自学Java,在玩了CodingBat之后,我只剩下一个非常基本的问题。为什么这是“真的”

a = 1, b= -1, negative = true

public boolean posNeg(int a, int b, boolean negative) {
  if(!negative && a <= 0 && b >= 0 || a >= 0 && b <= 0){
    return true;
  }else if(negative && a <= 0 && b <= 0){
    return true;
  }
  return false;
}

共 (2) 个答案

  1. # 1 楼答案

    在:

    !negative && a <= 0 && b >= 0 || a >= 0 && b <= 0
    

    &&的优先级高于||意味着它与:

    (!negative && a <= 0 && b >= 0) || (a >= 0 && b <= 0)
    

    如果conditional-or operator (^{})的任何一个操作数为true,则它将返回true:

    • !negative && a <= 0 && b >= 0为假,因为negative为假(与b >= 0一样,但未对其进行评估)
    • a >= 0 && b <= 0是真的

    因此表达式是true,因此执行if语句,这意味着返回true

  2. # 2 楼答案

    在你的第一个if中 if(!negative && a <= 0 && b >= 0 || a >= 0 && b <= 0){ A大于0,b小于0,因此返回true