Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 &&逻辑运算符功能_Java_Operators - Fatal编程技术网

Java &&逻辑运算符功能

Java &&逻辑运算符功能,java,operators,Java,Operators,在所有这些场景中 class BoolArray { boolean [] b = new boolean[3]; int count = 0; void set(int i) { b[i] = true; ++count; } public static void main(String [] args) { BoolArray ba = new BoolArray();

在所有这些场景中

class BoolArray  {
    boolean [] b = new boolean[3];

    int count = 0;

    void set(int i) 
    {
        b[i] = true;
        ++count;
    }

    public static void main(String [] args) 
    {
        BoolArray ba = new BoolArray();
        ba.set(0);
        ba.set(2);
        ba.test();
    }

    void test() 
    {
        if ( b[0] && b[1] | b[2] )
           count++;
        if ( b[1] && b[(++count - 2)] )
           count += 7;
        System.out.println("count = " + count);
    }
}
当代码到达if块内部时,&&'的短路逻辑为什么不工作

还请解释逻辑运算符的执行顺序

为什么“&&”的短路逻辑不能像代码那样工作 到达if块内部

短路逻辑工作正常。在进入第二条if语句之前,count是3,它不会正确地处理++计数并将其保留为3

还请解释逻辑运算符的执行顺序

:

按位和& 位异或^ 按位包含或| 逻辑与&&
逻辑或| |

为什么“&&”的短路逻辑不起作用-我可以向您保证它按预期工作。然而,实际的期望可能与您的期望不同。您希望发生什么而不是正在发生什么?正如您的代码和google上的第一个结果所示,顺序是先&&然后| |。快捷方式不会更改布尔逻辑的结果。您希望代码做什么?你的代码实际上是做什么的?i、 e.你期望什么样的产出,你得到什么样的产出?你的代码比证明你的问题所需要的要复杂得多-你能把你的代码简化成一个相关的吗:除非你认为是这样,请阅读并相应地强化你的问题。您希望我们花时间帮助您解决问题,因此请您对这里得到的反馈作出反应。
if ( b[0] && b[1] | b[2] )

if ( b[1] && b[0] || b[2] )

if ( b[1] && b[0] || b[2] )