Java中的语法错误

arp*_*sen 7 java syntax-error

if ( year % 4 == 0 )
    int i = 0;
else
    int j = 0;
Run Code Online (Sandbox Code Playgroud)

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

  • 令牌"int"上的语法错误,删除此令牌
  • 我无法解决变量
  • 令牌"int"上的语法错误,删除此令牌
  • j无法解析为变量
  • 令牌"="上的语法错误,删除此令牌

我不知道为什么会这样.

从我观察到的情况来看,我认为在if else构造体中放置一个int声明正在实现它.

如果我在代码中更早地声明i和j并运行程序,则错误消失如下:

int i; int j;
if ( year % 4 == 0 )
    i = 0;
else
    j = 0;
Run Code Online (Sandbox Code Playgroud)

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

小智 0

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