Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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 redux中打破嵌套循环_Java - Fatal编程技术网

在Java redux中打破嵌套循环

在Java redux中打破嵌套循环,java,Java,本页的后续行动: 这段代码工作得很好(是数独解算器的一部分,因此p是一个9x9表): intr=0,c=0; 输出: 对于(r=0;r

本页的后续行动:

这段代码工作得很好(是数独解算器的一部分,因此p是一个9x9表):

intr=0,c=0;
输出:
对于(r=0;r<9;++r){
对于(c=0;c<9;++c){
如果(p[r][c]==0){
爆发
}
}
}
//用r,c做些事情
但是这个代码失败了!唯一的变化是for循环的“init”部分是空的

int r = 0, c = 0;
out:
for( ; r < 9; ++r){
  for ( ; c < 9; ++c){
    if (p[r][c] == 0){
      break out;
    }
  }
}
// processes first row of array as it should, then breaks out with r=9, c=9
intr=0,c=0;
输出:
对于(;r<9;++r){
对于(;c<9;++c){
如果(p[r][c]==0){
爆发
}
}
}
//按应处理数组的第一行,然后以r=9、c=9中断

由于
r
c
是在循环上方定义和初始化的,因此这些块应该做完全相同的事情,但它们没有。有人知道为什么会这样吗?

是的,问题是第二个循环需要将
c
重置为
0
,否则它将只在外部循环的第一次迭代中运行。第二次通过(例如,当
r=1
时)
c
将已经是
9
,并且不会输入循环体。所以,你需要

for (c = 0 ; c < 9; ++c){
(c=0;c<9;++c)的
{
或者

(;r<9;++r)的
{
c=0;

您的内循环只执行了一轮外循环,因此它永远不会满足计算c
for (c = 0 ; c < 9; ++c){
for( ; r < 9; ++r){
  c = 0;