for循环只执行一次

jtjikinw  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(370)

这是我的密码。我的外循环只迭代一次而不是十次。我知道这是因为 System.out.println(i + " " + word) 只发生一次。我不明白为什么。
编辑:我已经添加了我的完整方法,这是包括在。一个程序的一部分,用来创建一个字符数组来进行单词搜索。行数=23。cols=11。word[]是一个数组,它包括输入数组中的每个单词的起始行和列值(如果该单词是水平的还是垂直的),等等。

public static char[][] createPuzzle(int rows, int cols, Word[] words) {

    char[][] grid = new char[rows][cols];
    for (Word h : words) {
        System.out.println(h.getWord());
    }
    try{
        for(int i = 0; i<=9; i++){
            String word = words[i].getWord();
            System.out.println(i + " " + word);
            boolean hor = words[i].isHorizontal();
            if (hor == true){
                for(int j = 0; j <= word.length(); j++){
                    grid[words[i].getRow()][words[i].getCol()+j] = word.charAt(j);
                }
            } else if (hor == false){
                for(int k = 0; k <= word.length(); k++){
                    grid[words[i].getCol()][words[i].getRow()+k] = word.charAt(k);
                }
            } 
        }
    } catch (StringIndexOutOfBoundsException | ArrayIndexOutOfBoundsException e){
        //catches exception
    }
    return grid;
}
bbmckpt7

bbmckpt71#

这是因为您正在使用以下语法:

} catch (StringIndexOutOfBoundsException | ArrayIndexOutOfBoundsException e){
        //catches exception
}

发生了什么:
代码中的某个地方引发了异常 StringIndexOutOfBoundsException 或者 ArrayIndexOutOfBoundsException . 这个例外打破了你的习惯 for 循环。 catch 阻止cathes异常,然后。。。
什么都不做,只是无视事实,继续下去。
所以,你至少应该加上这样的东西

e.printStackTrace()

在你的 catch 阻止。
永远不要忽略例外!

相关问题