【发布时间】:2023-03-21 06:05:02
【问题描述】:
有人可以帮助我理解 Java 中的范围规则吗?这显然是无效的:
{
int i = 0;
System.out.println(i); // fine, of course
}
System.out.println(i); // syntax error
i 在{} 中声明,在外部不可用。那么这个呢:
for (int i = 0; i < 10; i++) {
System.out.println(i); // fine, of course
}
System.out.println(i); // syntax error, same as above.
我对这里的语法错误感到惊讶。 i 在外部范围内声明,但稍后不可用。它是否通过for 循环的一些特殊规则绑定到内部块范围?还有其他可能发生这种情况的情况吗?
【问题讨论】:
-
与任何其他关键字或语法产生关联的“裸”
{}和{}是有区别的——即必须在即使许多情况具有相似的语义,语法的上下文也是如此。