【问题标题】:Syntax Errors in Java [duplicate]Java中的语法错误[重复]
【发布时间】:2015-02-02 23:50:09
【问题描述】:
if ( year % 4 == 0 )
    int i = 0;
else
    int j = 0;

由于这行代码在eclipse中出现的语法错误是:

  • 标记“int”的语法错误,删除此标记
  • i 无法解析为变量
  • 标记“int”的语法错误,删除此标记
  • j 无法解析为变量
  • 标记“=”的语法错误,删除此标记

我不知道为什么会这样。

根据我的观察,我认为在 if else 构造体中放置一个 int 声明正在实现它。

如果我在代码的前面声明 i 和 j 并运行程序,那么错误就会消失,如下所示:

int i; int j;
if ( year % 4 == 0 )
    i = 0;
else
    j = 0;

在这种情况下没有语法错误。为什么?

【问题讨论】:

  • 我正在写一个答案;但由于它关闭了我不能。查看the if statement 的JLS,如果你上去你会看到LocalVariableDeclarationStatement 只能在Block

标签: java syntax-error


【解决方案1】:

这可能是因为范围。在 if 中声明 i 和 j 会使它们在 if 语句之外无法访问。将它们声明在外部会改变它们的范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2015-12-17
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多