Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的语法错误_Java_Syntax Error - Fatal编程技术网

Java中的语法错误

Java中的语法错误,java,syntax-error,Java,Syntax Error,由于这一行代码,eclipse中出现的语法错误有: 令牌“int”上出现语法错误,请删除此令牌 我无法解析为变量 令牌“int”上出现语法错误,请删除此令牌 j不能解析为变量 令牌“=”上出现语法错误,请删除此令牌 我不知道为什么会这样 从我观察到的情况来看,我认为在if-else构造体中加入int声明是实现这一点的原因 如果我在代码前面声明i和j并运行程序,则错误会消失,如下所示: if ( year % 4 == 0 ) int i = 0; else int j = 0

由于这一行代码,eclipse中出现的语法错误有:

  • 令牌“int”上出现语法错误,请删除此令牌
  • 我无法解析为变量
  • 令牌“int”上出现语法错误,请删除此令牌
  • j不能解析为变量
  • 令牌“=”上出现语法错误,请删除此令牌
我不知道为什么会这样

从我观察到的情况来看,我认为在if-else构造体中加入int声明是实现这一点的原因

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

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

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

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

我正在写一个答案;但既然关门了,我就不能去了。查看JLS,如果向上看,您将看到
LocalVariableDeclarationStatement
只能位于
块中
int i; int j;
if ( year % 4 == 0 )
    i = 0;
else
    j = 0;