为什么这个数组不能正常工作?

时间:2014-02-04 16:59:41

标签: java

为什么这个数组不起作用?

我将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]);
    }
}

http://ideone.com/cvD1I7

3 个答案:

答案 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