Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:索引2超出范围_Java_Multidimensional Array - Fatal编程技术网

“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:索引2超出范围

“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:索引2超出范围,java,multidimensional-array,Java,Multidimensional Array,线路Try显示为红色,并且: 线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常: 索引2超出长度为2的范围 skipcounting.skipcounting.main(MyJava.java:11) package skipcounting; 公共类Skipcounting{ 公共静态void main(字符串[]args){ 试一试{ int[]数字={{1,2,3,4,5},{10,20,30,40,50}; 对于(int i=0;i

线路Try显示为红色,并且:

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常: 索引2超出长度为2的范围 skipcounting.skipcounting.main(MyJava.java:11)

package skipcounting;
公共类Skipcounting{
公共静态void main(字符串[]args){
试一试{
int[]数字={{1,2,3,4,5},{10,20,30,40,50};
对于(int i=0;i<数字[1]。长度;i++){
对于(int j=0;j

这应该行得通。让我知道

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]);
            }
        }
    }
}
公共类Skipcounting{
公共静态void main(字符串[]args){
int[][]数={{1,2,3,4,5},{5,10,15,20,25};

对于(intz=0;z<2;z++){//Fixed from“z这里的问题是如何获得2D数组中的行数和列数

  • int[]number={{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\u 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]);
                }
            }
    
    for(int i=0;i对于(int j=0;j
    zz
    z提供行数,而
    z
    为您提供列数。您有2行5列。但在代码中,您要迭代5行5列。因为您只有2行。您可以通过输出获得ArrayoutOfBoundException集合:输出应该是数字[0][0]=1数字[0][1]=2数字[0][2]=3数字[0][3]=4数字[0][4]=5数字[1][0]=10数字[1][1]=20个数字[1][2]=30个数字[1][3]=40个数字[1][4]=50还有一行try{show redI不知道你想问什么。你能理解我的评论吗?试一下应该会有一个陷阱。
    try
    设置错误陷阱,并
    catch
    捕捉错误,以便你可以吃掉它(处理它):Dy您应该说明操作代码不起作用的原因。此代码可能会修复错误,但并不能真正解决问题。@化学专业您的代码不起作用的主要原因有两个:1)在第二个for循环中,您使用的是“z++”,而不是“o”++,因此,您将z增加了两次,导致数组索引绑定问题。2)您的第一个for循环绑定到“z”。请将注释也放入您的答案中。删除try-catch块。这不是必需的。顺便说一句,您将无法捕获基类异常。