线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:?

时间:2013-11-08 19:16:08

标签: java

import  javax.swing.*;
public class Main {

public static void main(String[] args) {
int r=0,c=0;

String input,inputt;
input = JOptionPane.showInputDialog("Plz Enter the number of Rows");
r = Integer.parseInt(input);

 input = JOptionPane.showInputDialog("Plz Enter the number of Coloms");
c = Integer.parseInt(input);

int array[][]= new int[r][c];
for (int i=0;i<=r;i++)
    {
        for (int j=0;j<=c;j++)
        input = JOptionPane.showInputDialog("Plz Enter the elemet of the array");
        array [r][c]= Integer.parseInt(input);
    }


}

我正在尝试使用JOption声明2d数组

2 个答案:

答案 0 :(得分:8)

您正在使用for循环条件运行2D数组的末尾:

for (int i=0;i<=r;i++)
{
    for (int j=0;j<=c;j++)

有效索引是0r - 10c - 1,所以你们每个都走得太远了。尝试

for (int i=0;i < r;i++)
{
    for (int j=0;j < c;j++)

答案 1 :(得分:2)

您的代码中存在少量错误

  1. 你永远不会检查用户输入的内容(如果它是“一个”,那该怎么办)
  2. 您的循环将在rc范围内包含ij,其中最大索引为r-1c-1 < / LI>
  3. for (int j=0;j<c;j++)中读取和转换用户数据需要在代码块中完成,否则循环只会执行c
  4. 在循环中,您使用的是固定索引array [r][c],而不是array [i][j]