有人可以帮助我理解 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
循环?还有其他情况可能会发生这种情况吗?
想想 for 循环实际上是这样表示的:
{
int i = 0;
while (i < 10) {
// your code
i ++
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)