我怀疑。 我正在开发以下代码,它将是您手动引入的数字的多重表。我不能得到的是打印表格。我不知道发生了什么,因为据我所知,所有的代码都是正确的。
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
答案 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代码,几乎肯定不是你想要的。