好的,这对于大学的实验室而言。想要接受用户输入的整数,将它们放入一个数组并打印出来。
我在尝试编译时遇到错误。
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0 在Lab3.main(Lab3.java:12)
public class Lab3 {
public static void main(String[] args) {
int[] First = {};
for(int i=0;i<First.length;i++)
{
First[i] = (int)(Math.random() *10 +1);
System.out.print(First[i] + " ");
}
for(int i=0;i<First.length;i++)
{
if (First[i]%2==0)
{
System.out.println("Even numbers are:"+First[i]);
}
}
for(int i=0;i<First.length;i+=2)
{
if (First[i]%2==0)
{
System.out.println("Even numbers are:"+First[i]);
}
}
for(int i=0;i<First.length;i++)
{
int temp = First[i];
First[i] = First[First.length - i - 1];
First[First.length - i - 1] = temp;
System.out.println("Reverse is:"+temp);
}
System.out.println("First is:"+First[0]);
System.out.println("First is:"+First[9]);
}
}
答案 0 :(得分:4)
通过
int[] First = {};
// is the same as
int[] First = new int[0];
你正在创建一个包含0个元素的数组。然后,您尝试访问第一个元素。
System.out.println("First is:"+First[0]); // access first element of empty array?
由于您没有元素,您如何访问它们?创建一个包含10个元素的数组
int[] First = new int[10];
如果您想要静态集合(不可调整大小)或使用List
实现来获得动态集合(可调整大小)。
Java命名约定规定变量应以小写字母字符开头。使用camelCase
。
答案 1 :(得分:2)
int[] First = {};
初始化0长度数组。
First[0]
不存在。提及长度作为声明的一部分或稍后。
First = new int[10]; //creates an array of 10 ints
请注意,上面会在First[11]
如果您不确定尺寸,可以改用ArrayList。
List<Integer> first = new ArrayList<Integer>();
first.add((int)Math.random() *10 +1);
答案 2 :(得分:2)
您应该使用List,因为您的数组会及时增长。这就是为什么你不能访问First [i],因为你的数组用一个空数组初始化(并且将永远保持这样)。您还可以使用某些元素(不是您的用例)或使用具有初始容量的new来初始化数组。
答案 3 :(得分:0)
您应该使用List,因为您的数组会及时增长。