使用Java中的方法返回一个数组

时间:2013-03-27 23:23:01

标签: java arrays methods

我怀疑。 我正在开发以下代码,它将是您手动引入的数字的多重表。我不能得到的是打印表格。我不知道发生了什么,因为据我所知,所有的代码都是正确的。

public class Tabla 
{

public static void main (String[] args) 
{        
    int n=4;       

    Tabla table = new Tabla ();
    int dato [];
    dato=table.producto(n);        

    for (int j=1;j<=10;j++)
    {System.out.println(dato[j]);}

}



public int [] producto(int num) 
{ 
    int a[]={'0'};

    for (int i=1;i<=10;i++)
    {a[i]=num*i;}

    return a;


}    

}

任何想法??

提前致谢!

**我将代码更改为:

public class Tabla 
{

    public static void main (String[] args) 
    {        
        int n=4;       
        int j;

        Tabla table = new Tabla ();
        int dato[]=new int [10];
        dato=table.producto(n);        

        for (j=0;j<10;j++)
        {System.out.println(dato[j]);
        }

    }



    public int [] producto(int num) 
    { 
        // make a 10-element array
        int a[] = new int[10];

       // fill up the array with products
        for (int i = 0; i < 10; i++)
        {a[i] = num * (i+1); }

        return a;            

    }       
}

像魅力一样! 现在我想知道为什么编译器抛出“ArrayIndexOutOfBoundsException”时我的for循环为for (int i = 1; i <=10; i++)

感谢您的帮助! :d

2 个答案:

答案 0 :(得分:5)

根据Wasserman的回答,你应该写的内容如下:

public int[] producto(int num) 
{
    // make a 10-element array
    int a[] = new int[10];

    // fill up the array with products
    for (int i = 0; i < 10; i++)
        a[i] = num * (i + 1);

    return a;
}

您创建了一个单元素数组,而您希望填充一个10元素数组。

答案 1 :(得分:3)

两个问题:

int a[]={'0'};

这一行创建一个只有一个元素的数组a - 而不是你要填充的11个元素 - 而且,一个元素是字符0的ASCII代码,几乎肯定不是你想要的。