java - 如何跳出嵌套循环

标签 java arrays loops

我目前正在编写一个程序,其中需要嵌套循环来搜索数组以在数组中找到适合输入的位置。这是一个例子:

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{

                }

            }
        }
    }

该方法采用一个参数,该参数是片段应位于的列(由鼠标监听器接收)。如果二维数组中的列已经填满,程序就会陷入“else if”的无限循环,我不确定如何跳出这个循环。如果输入错误,我如何才能跳出此循环,以便用户可以尝试提供另一列作为输入。

最佳答案

一个简单的方法是使用 labeled break statement .

myLabelName:
for(outer loop)
    for(inner loop)
        if(condition)
            break myLabelName;

如果您不想在找到所需内容后浪费时间遍历其他对象/项目,这会很有用。


扩展一下,当你只使用 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
        }
     }
 }

关于java - 如何跳出嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29857721/

相关文章:

python - if语句可以是变量吗?

java - 反编译器字节码和混淆器

java - 来自 joda-time DateTimeFormatter 的模式字符串?

arrays - 根据对象属性查询 Mongoose 文档

php - 将 MySQL 数据库中的表显示到数组中

c++ - 可以在循环中使用相同的变量名吗?

java - 循环遍历具有相同属性 (catalog_id) 的项目出现情况

java - 从 List<MyData> 列出 List<String> 中的所有名称的最佳方法是什么

javascript - 遍历字符串中的数字

c - 遍历 C 中的多个数组