Mat*_*ard 2 java syntax braces
有人可以帮我理解Java中的范围规则吗?这显然无效:
{
int i = 0;
System.out.println(i); // fine, of course
}
System.out.println(i); // syntax error
Run Code Online (Sandbox Code Playgroud)
i在内部声明{},并且在外面不可用.那么这个怎么样:
for (int i = 0; i < 10; i++) {
System.out.println(i); // fine, of course
}
System.out.println(i); // syntax error, same as above.
Run Code Online (Sandbox Code Playgroud)
我对这里的语法错误感到惊讶.i在外部范围内声明,但稍后无法使用.是否通过一些特殊的for循环规则绑定到内部块范围?还有其他可能发生这种情况的情况吗?
想到for循环实际上表示如下:
{
int i = 0;
while (i < 10) {
// your code
i ++
}
}
Run Code Online (Sandbox Code Playgroud)