【发布时间】:2011-12-06 05:03:22
【问题描述】:
今天在写代码的时候,遇到了一些没想到会以这种方式发生的事情。下面是这个问题的示例代码。
密码 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的值而后者可以吗?
感谢您花时间阅读我的问题
【问题讨论】:
-
抱歉我刚才忘了缩进代码
-
不,我尝试使用 C 语言和 PHP 都产生相同的结果
标签: c variables for-loop while-loop scope