因为for语句分为三个步骤,所以是否还原,要看你的for语句是如何写的。
首先while(1)会生成一个死循环,这是毋庸置疑的。
然后是里面的for语句
如:for(表达式1; 表达式2;表达式3)
其中,表达式1一般是给循环变量赋初始值,如果你在这里做了初始化,那么变量改变后,在下一个while循环中,重新执行了该初始化语句,所以变量又变回来了。你也可以在表达式3中改变变量的值。也可以在for语句中改变变量的值,也可以在while循环内,for语句之外改变变量的值。这取决于你对变量的操作。所以它有可能会还原,也可能不被还原。
如:for(i=0;i<10;i++)这个语句会在每次while循环后,第一次执行for语句时初始化i值。所以会还原。而for(;i<10;i++)这个语句就不会还原。这样就死循环了,会一直执行while(1),而for语句没有执行。反正条件很多的。。。。
只能说明 while(1)内部的语句一直执行。
终于for有很多情况
比如
while(1)
{
for(int i = 0 ; i < 5 ;++i )
{
}
}
for语句 i变成5后,就跳出for语句跳到外面的while语句,由于while语句条件总是成立。
于是 又执行 int i = 0 ;继续执行.
while(1)
{
for(int i = 0 ; i < 5 ;++i )
{
printf("%d\n",i);
}
}
你就可以明白了
有时自己编一下程序就知道了
#include
void main()
{
while(1)
{
for(int i=1;i<=10;i++)
printf("%d",i);
printf("\n");
}
}
结果会是输出1到10然后回车换行继续输出1到10回车换行这样反复