嵌套的if语句在几个测试中返回false

时间:2017-08-02 23:43:38

标签: java

给定2个int值,如果一个为负数且一个为正数,则返回true。除非参数“negative”为true,否则仅当两者都为负时才返回true。

这是我的代码:

public boolean posNeg(int a, int b, boolean negative) {

if (negative) 
  if (a < 0 && b < 0) 
    return true;


if (!negative) 
  if (a > 0) 
    if (b < 0) 
      return true;
      else if (a < 0) 
        if (b > 0) 
          return true;


   return false;

the bottom-most "red" result is confusing me. It should be returning true as the others are.}

我知道我的错误隐藏在一个明显的视野中。小心点出来?

3 个答案:

答案 0 :(得分:2)

您的缩进对您的逻辑不正确。试试这个:

<script>
    window.Laravel = {!! json_encode([
            'csrfToken' => csrf_token(),
    ]) !!};
</script>

答案 1 :(得分:1)

您可以相当简化逻辑,如果negative为真,您要检查a b是否都小于零。否则,如果一个或另一个小于零(独占或 xor ),则需要true。这可以像,

if (negative) {
    return a < 0 && b < 0;
}
return (a < 0) ^ (b < 0);

答案 2 :(得分:0)

试试这个:

    if(negative){
        return (a < 0 && b < 0)
    }else{
        return (a * b < 0)
    }
boolean result = negative ? (a < 0 && b < 0) : (a * b < 0);

enter image description here