今天在我编写代码时,我遇到了一些我并不期望以这种方式发生的事情。下面只是示例代码。混淆while和for循环的变量作用域(C编程)
的代码1
while(true)
{
int i = 1;
printf("This is %d\n" , i);
++i;
if(i == 10)
break;
}
的代码2
for(int i = 1 ; ; i++)
{
printf("This is %d\n" , i);
if(i == 10)
break;
}
的问题:
1)的第一个代码将导致而后者无限循环不是。
2.)我不明白,里面有一个标准的提及变量声明while循环可以通过while循环内的任何语句访问,但为什么if()
无法访问变量i的值,而后者可以访问??
谢谢你花时间阅读我的问题
对不起,我忘了刚才 – caramel1995
都能跟得上它缩进的代码,我已经尝试使用C语言和PHP都产生相同的结果 – caramel1995