2014-06-30 25 views
1

我遇到了this tutorial,想知道为什么Java编译器会为最后一个示例抛出一个错误。有人可以解释吗?锯齿形阵列:非法表达式开始

下面是摘录:

-

的Java丑:句法不平顺与特设逻辑

在这种不规则的,但方便的语法:int[] v = {3,4};,它几件事情在一个镜头: {数组类型声明,赋值,元素声明数,插槽满足}。但是,这种语法特质不能一般使用。例如,以下是语法错误:

int[] v = new int[2]; 
v = {3, 4}; 

下面是您可以尝试的完整代码。

public class H { 
    public static void main(String[] args) { 
     int[] v = new int[2]; 
     v = {3,4}; 
     System.out.print(v[0]); 
    } 
} 

编译器错误是:“illegal start of expression”。

+0

可能重复[如何声明Java中的数组?](http://stackoverflow.com/questions/1200621/how-to-declare-an-array-在-JAVA) –

回答

2

的 “{}” 括号不能使用数组大小已经作出之后。代码将不会运行,因为它会尝试将大小分配给已具有大小的数组。要在“int [] v = new int [2];”之后定义数组中的元素,必须使用“v [0] = 3;”和“v [1] = 4;”

0

这只是简单地违背语法的规则。您可以执行以下任一操作来获得相同的结果。

  1. int[] v = {3, 4};
  2. v[0] = 3; v[1] = 4;
3

试试这招:

public class H { 
    public static void main(String[] args) { 
     int[] v = {9,6}; // new array with default values 
     System.out.print(v[0]); 
     v = new int[]{3,4}; //note: this will create a new array 
     System.out.print(v[0]); 
    } 
}