有些人请告诉我,我在尝试执行以下代码时遇到错误。为什么&#39 ;;'即使我已在代码中包含相同内容,也会显示预期。
计划:
class E
{
public static void main(String[] args)
{
int i;
int i++ ;
// System.out.println(i);
//System.out.println(j);
}
}
跑步后:
E.java:6: error: ';' expected
int i++ ;
答案 0 :(得分:2)
它应该是,
public static void main(String[] args)
{
int i=0;//local variable should be initialized before use
i++ ;//not int i++.you have created it already.
}
答案 1 :(得分:2)
Javac有一个LALR解析器,有时候会有些愚蠢的建议。代码中的问题是:
int i++
不是有效的声明。如果您想增加i
,只需撰写i++;
。i
初始化为值,否则第二行无效。i++
分配给j
。在这种情况下,您需要++i
形式的预增量。以下全部有效:
int i = 0; // or some other value
i++;
或
int i = 0; // or some other value
int j = ++i; // also increments `i`
或
int i = 0; // or some other value
int j = i + 1; // doesn't modify value of i