我目前正在制作一个程序,其中需要嵌套循环来搜索数组以找到数组内良好输入的位置.这是一个例子:
public void placePiece(int column) {
boolean goodInput = false;
while(!goodInput) {
for(int x = 5; x >= 0; x--) {
if(boardStatus[x][column] == 0) {
setRow(x);
boardStatus[x][column] = 1;
goodInput = true;
break;
}else if(boardStatus[0][column] == 1) {
goodInput = false;
break;
}else{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该方法采用一个参数,该参数应该是该片段所在的列(由鼠标监听器接收).如果2D数组中的列已经填充到顶部,程序将陷入"else if"中的无限循环中,并且我不确定如何打破这个循环.如果输入错误,我怎么能突破这个循环,以便用户可以尝试将另一列作为输入.
一种简单的方法是使用带标签的break语句.
myLabelName:
for(outer loop)
for(inner loop)
if(condition)
break myLabelName;
Run Code Online (Sandbox Code Playgroud)
当您在找到所需内容时不想浪费时间迭代其他对象/项目时,这非常有用.
要扩展,当您使用just break;(没有标签)时,它将退出父循环.例如:
myLabelName:
for(outer loop){
for(inner loop){
if(condition){
break myLabelName; //breaks outer loop
}
else if(other condition){
break; //breaks parent (inner/nested) loop
}
}
}
Run Code Online (Sandbox Code Playgroud)