局部变量范围和for循环

Adr*_*ran 4 java

我刚刚开始学习Java.我有一些虚假的问题.在这种情况下,我真的不明白为什么:

int j = 5;
for (int j = 0; j < 10; j++) {
   // do sth
}
Run Code Online (Sandbox Code Playgroud)

我的编译器说:the variable j is already defined in the scope.
为什么这第二j个问题?我认为它应该只是影响第一个.

The*_*kis 6

问题是你要将变量声明j两次:一个是for循环,一个是内部.只需删除上方的行for,您就可以开始了.

局部变量没有被遮蔽 - 也许你记住了字段(但这与你在这里有所不同).