为什么这个数组不起作用?
我将Java作为一个类而且这个数组不起作用,你能让我知道为什么它不起作用吗?如果这个问题已经被问到,我会搜索,但我认为这只是一个超级基本的问题,我认为之前没有人问过它。
这是数组:
class identify
{
public static void main(String arge[]);
{
int a[]= new a[4];
a[]={12,14,15,17,21};
System.out.println(a[3]);
System.out.println(a[4]);
}
}
答案 0 :(得分:2)
您的代码中存在一些错误:
声明:赋值运算符=
有两个操作数:右侧,即接收值的变量,左侧,即分配的值。左侧表达式必须构造一个数组。您可能会注意到new a[4]
不是数组的有效构造。它应该是new int[4]
。
初始化:{x,y,...}
语法只能在初始化数组时使用。 new int[x];
将分配一个容量/长度为x
的新数组,并使用默认值(0
s)int
初始化数组中的每个元素。在那里,您无法使用{x,y,z}
构造的常量值再次初始化数组。
此外,不鼓励您声明数组(int a[]
)的方式,而是使用int[] a
。这是一个更清晰的语法。
试试这个:
int[] a = new int[]{ 12,14,15,17,21};
请注意,您也可以这样做:
// Declaring a is an array of ints
int[] a;
// Initialization and assignment to a.
// Notice the array length isn't explicitly given.
a = new int[]{ 12,14,15,17,21 };
否则:
// Declaring a is an array of ints
int[] a;
// Initializing a as an empty array with 5 elements (all of them will be 0)
a = new int[5];
a[0] = 12;
a[1] = 14;
a[2] = 15;
a[3] = 17;
a[4] = 21;
您可能会发现Java教程的Arrays页面很有用。
编辑作为旁注,正如rgettman在评论中指出的那样,void
方法签名末尾不应该有分号。并且考虑到如果您分配new int[4]
,则访问它的最后一个有效索引将是3(a[3]
)。 a[4]
会抛出ArrayIndexOutOfBoundsException
。
答案 1 :(得分:0)
a []不是变量。试试这个:
a = new int[]{12,14,15,17,21};
答案 2 :(得分:0)
试试这个
int a[]= new int[]{12,14,15,17,21};// initialization at the time of declaration
或者您可以使用
int[] a; //declaration
a = new int[]{12,14,15,17,21}; // then initialization