为什么我不能以这种方式在for循环中定义变量?

通过测试我发现

这是不合法的:

for (int i= 0; i < 1000000000; i++) 

int j = i & i+1 ; // j cannot be declared here!

但这是:

for (int i= 0; i < 1000000000; i++) { 

int j = i & i+1 ;

}

为什么?

回答:

第一种方法不合法,因为编译器很明显不能使用j在那里声明的声明,因为在该for循环中不能再包含其他语句。基本上,该位置的新变量声明将超出下一个语句的范围,因此没有任何用处。

在第二种情况下,循环后跟花括号,这创建了一个新的作用域,您可以使用该变量。

以上是 为什么我不能以这种方式在for循环中定义变量? 的全部内容, 来源链接: utcz.com/qa/409014.html

回到顶部