当布尔表达式为false时,For循环仍然有效

时间:2019-10-24 19:03:10

标签: java for-loop debugging

我写了一个嵌套循环。奇怪的是:当条件为假且我不知道为什么时,第二个循环仍会进入该语句。

int[] g = {1,2};
int[] s = {1,2,3};

for(int i=0;i<s.length;){
    for(int j=0;j<g.length&&i<s.length;){
        if(s[i]>=g[j]){
            i++;
            j++;
        }else{
            i++;
        }
    }
}

我希望j==g.length,即j == 2时,内循环会中断。但是实际发生的是,当j==2时,内部循环将跳转到

...
else{
  i++;
}

1 个答案:

答案 0 :(得分:1)

您怎么知道它会进入其他部分?当j<g.length条件失败(j = 2)时,内部循环将始终停止。

尝试放入System.out.println()语句或调试器以检查流程。