实例变量错误:Java中需要标识符
我是一个新的Java学习者。我学习了一些Java核心概念。运行以下代码时,我得到了预期的标识符错误:
class Sekar {
public static int i,j,k;
i = 900;
static void max()
{
j = 100;
if(i>j)
{
k=i;
}
else {
k=j;
}
System.out.println("The maxmimum vale between"+i+"and"+j+"is :"+k);
}
public static void main(String[] args) {
max();
}
}
编译代码时,出现以下错误:
error: identifier expected
i = 900;
^
- 有人能解释为什么这里会发生这种错误吗李>
- 当我在谷歌上搜索标识符预期错误时,我发现当声明变量时没有数据类型,就会发生这个错误,但我声明对于我所有的变量I,j,k
- 当我再次声明数据类型,同时将值设置为“I”时,就像
int i = 900
一样,它可以工作。为什么会这样李>
# 1 楼答案
看看Java: Identifier expected:
这是一种陈述。你不能在任何地方写陈述。它必须在方法/构造函数主体中。在声明中初始化变量称为definition,这是该规则的例外
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/expressions.html
如果要初始化静态变量,可以采用两种(正常)方式: 在声明变量的地方初始化变量:
或者在静态构造函数中执行:
另外,如果你想定义一个constant,我建议使用final关键字
j可以转换为local variable
# 2 楼答案
这是Java中的一条语句,可以在构造函数、方法或初始化块中
在您的情况下,可以将其移动到
max()
方法中在这里,您在同一时间、同一行中声明变量并将其赋值
查看here了解更多详细信息,以及here有关java语句、表达式的信息
# 3 楼答案
你可能想做的是:
不过,我不鼓励您在这种情况下使用静态字段。我建议您在方法中使用
i
、j
和k
参数。在你做的时候给他们起个描述性的名字还要注意
k
没有显式初始化,因此默认设置为0
,因此else
子句永远不会到达