for(int i=0;i<2;i++){
int j=i;
System.out.println(j);
}
//same thing what a for loop does
/**********************************************/
int j=0;
System.out.println(j);
int j=1;
System.out.println(j);
我有这个愚蠢的怀疑:我试图通过多次在for循环中写入相同的语句来做同样的事情,但是在第二次声明变量j
之后编译器显示变量重新声明错误但是这个错误没有出现在for循环中,即使它试图多次执行相同的语句也是如此?
答案 0 :(得分:3)
这是因为变量j
的范围仅限于循环的单次迭代。你的第二个代码并不完全等同于你的第一个&#34;展开的&#34;环。如果您想完全等效它,请在每个模拟迭代周围添加花括号,如下所示:
{
int j=0;
System.out.println(j);
}
{
int j=1;
System.out.println(j);
}
现在您的代码将正确编译并运行,从而产生与原始代码段相同的结果。
答案 1 :(得分:0)
basic for
statement具有以下格式
BasicForStatement:
for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement
或,more simply,
for (initialization; termination;
increment) {
statement(s)
}
初始化部分只执行一次。
初始化表达式初始化循环;它被执行了 一旦,循环开始。
初始化部分中声明的变量在整个for
语句的范围内,包括其正文。
答案 2 :(得分:-1)
因为你已经声明了变量J,所以你不用int
再次声明它int j=0;
System.out.println(j);
j=1;
System.out.println(j);*