繁体   English   中英

为什么在尝试输出数组时会出现异常错误?

[英]Why do I get an exception error when I try output an array?

我写了一个简单的代码,应该输出一个二维数组。 这是代码:

String month[];
int speedfines[][];

public int speedFines() {
    speedfines = new int[3][2];
    month = new String[2];

    month[0] = "JAN";
    month[1] = "FEB";
    month[2] = " MAR";

    speedfines[0][0] = 128;
    speedfines[0][1] = 135;
    speedfines[0][2] = 139;
    speedfines[1][0] = 155;
    speedfines[1][1] = 129;
    speedfines[1][2] = 175;
    speedfines[2][0] = 129;
    speedfines[2][1] = 130;
    speedfines[2][2] = 185;
    speedfines[3][0] = 195;
    speedfines[3][1] = 155;
    speedfines[3][2] = 221;

    System.out.println(Arrays.toString(speedfines));

    return 0;
}

当我运行此代码时,它在线程错误中给了我 java 异常。 我正在使用 netbeans 12.0 并且我的代码中没有任何错误,但是当我运行时出现异常错误错误 有人可以向我解释 java 异常的含义以及如何修复它(如果可能)。

问题是您为数组monthspeedfines定义的大小。

例如,您将大小2定义为并尝试将3 个元素放入其中。 为了您的代码正常工作,请将数组定义更改为:

speedfines = new int [4][3];
month = new String [3];
 -------------------
|      |      |     |     ⇒    Size = 3  /  month = new String [3]
 -------------------
   ↑       ↑     ↑
   0       1     2

你的month数组应该是:

month = new String[3];

当您将其设置为new String[2] ,您允许数组中有2项目。

由于您在数组中设置了3项目:

month[0] = "JAN";
month[1] = "FEB";
month[2] = "MAR";

它引发ArrayIndexOutOfBoundsException ,因为此时索引2不存在。

此外,您的数组是在函数之外定义 将它们移动到函数内。

代码应该是:

public int speedFines() {
    int speedfines[][] = new int[3][2];
    String month[] = new String[3];

    month[0] = "JAN";
    month[1] = "FEB";
    month[2] = "MAR";

    speedfines[0][0] = 128;
    speedfines[0][1] = 135;
    speedfines[0][2] = 139;
    speedfines[1][0] = 155;
    speedfines[1][1] = 129;
    speedfines[1][2] = 175;
    speedfines[2][0] = 129;
    speedfines[2][1] = 130;
    speedfines[2][2] = 185;
    speedfines[3][0] = 195;
    speedfines[3][1] = 155;
    speedfines[3][2] = 221;

    System.out.println(Arrays.toString(speedfines));

    return 0;
}

您在数组 2dimention 中保存了 12 个项目,因此您需要执行此操作speedfines = new int [4][3]; 我认为异常名称是 ArrayIndexOutOfBounds 显示当您放置数组大小并为其提供大于她的大小的项目时

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM