线程“main”java.lang.arrayindexoutofboundsexception中的异常:索引2超出界限

dgsult0t  于 2021-07-11  发布在  Java
关注(0)|答案(2)|浏览(608)

测线显示为红色,并且:
线程“main”java.lang.arrayindexoutofboundsexception中出现异常:skipcounting.skipcounting.main(myjava)处长度2的索引2超出界限。java:11)

package skipcounting;

public class Skipcounting {

    public static void main(String[] args) {
        try{
            int[][]numbers ={{1,2,3,4,5},{10,20,30,40,50}};

            for (int i=0; i< numbers[1].length; i++){
                for (int j=0; j<numbers[1].length; j++){
                    System.out.println("numbers["+i+"]["+j+"]="+ numbers[i][j]);
                }

            }

        }
    }

}

显示的错误

wa7juj8i

wa7juj8i1#

这里的问题是如何获得二维数组中的行数和列数。 int[][]numbers ={{1,2,3,4,5},{10,20,30,40,50}} -这意味着有2行,每行有5列。 int[][]numbers ={{1,2,3,4,5},{10,20,30,40,50,60,70}} -如果你看这个,有2行,但是第一行有5列,第二行有7列
如果你想得到行数,用这个- numbers.length 如果要获取行中的列数,请使用- numbers[row_index].length 所以在你的问题中,正确的代码世界应该是-

for (int i=0; i< numbers.length; i++){
            for (int j=0; j<numbers[i].length; j++){
                System.out.println("numbers["+i+"]["+j+"]="+ numbers[i][j]);
            }
        }
uyhoqukh

uyhoqukh2#

这应该管用。让我知道。

public class Skipcounting {
    public static void main(String[] args) {
        int[][]numbers ={{1,2,3,4,5},{5,10,15,20,25}};
        for (int z = 0; z < 2; z++){ // Fixed from "z<numbers[1].length to "z<2".
            for (int o = 0; o < 5; o++){ //Fixed from "z++" to "o++".
                System.out.println("numbers["+z+"]["+o+"]="+ numbers[z][o]);
            }
        }
    }
}

相关问题