int [] table = new int [10],x;有效的语法?

时间:2015-07-07 00:59:36

标签: java arrays variable-declaration

当我初始化一个新数组时,我注意到如果我放了,x它仍然编译。我不确定这里发生了什么。

int[] table = new int[10],x;
for(int x=1; x<11; x++){
    System.out.println("Count is: " + x);
}

如果我尝试运行它,则说已经定义了x。我绝不会以这种方式编写代码,因为它会让人很困惑;我只是好奇x被定义为什么。

3 个答案:

答案 0 :(得分:5)

int[] table = new int[10],x;

是有效的语法,因为x只是另一个int []数组变量。

就像在一行中声明单个类型的多个变量一样:

int a=1,b,c,d,e,f;
  

如果我尝试运行它,则表示x已经定义

因为你试图在同一范围内的for循环中第二次声明x。在你的代码中,我没有看到任何将x定义为数组类型的需要,你总是可以像你一样在循环中将x定义为int。

答案 1 :(得分:1)

根据第一个语句定义为int[]。 C系列语言(C,C ++,Java,C#,D,...)允许使用,分隔相同类型的声明。对于具有不同类型的新声明集,请使用;终止该声明并编写一个新声明(这基本上就是您在for循环中已经拥有的声明)。

答案 2 :(得分:0)

原因你会得到一个语法错误。你已经在开始时将x定义为一个int数组。所以你不能将它重新定义为x范围内的int变量。