我试图搜索二维数组/矩阵(布尔值)上的列,以找到全部为false的列,然后返回该列的索引。
public int top() {
for (int j = 0; j < size; j++) {
for (int i = 0; i < size; i++) {
System.out.println("index i: "+ i+" index j:"+j);
if (matrix[i][j]==true) {
j++;
}
}
return j;
}
System.out.println("failed");
return -1;
}
当检测到“true”值时,我想跳出嵌套for循环,并在下一列的顶部再次开始搜索。现在,当检测到一个真值时,该列将递增,它将继续搜索最后一个关闭的下一列,而不是我希望的开始。
有没有办法检测for循环中的某个内容,更改索引,然后重新启动搜索?
3条答案
按热度按时间v2g6jxz61#
你可以使用
while
循环到仅循环如果matrix[i][j]
是假的。然后在检查一列之后,如果它到达末尾,则返回列索引。zbq4xfa02#
是的,你可以用
continue
并为此命名了循环。注意每个循环是如何用一个自我解释的名称命名的,这使得编写所需的算法变得很容易
xlpyo6sf3#
公共int top(){
我们将“failed”设置为tru,以防在列中得到1个“true”。然后,我们的内部for循环将停止处理。
如果我们没有找到“true”值,我们将迭代所有列,然后(因为“failed”是false)返回第一个全部为false的列