E46.【C语言】练习:面试题:循环多少次?
目录
1.题目
2.分析
变式训练
分析
1.题目
下列代码的循环一共进行了多少次?
#include <stdio.h>
int main()
{
int i = 0;
int k = 0;
for (i = 0, k = 0; k = 0; i++, k++)
k++;
return 0;
}
2.分析
注意到for循环的条件:k = 0;这里是赋值符号,和k==0不同,如果赋值语句作为条件,其返回值为k赋值的值,这里k = 0,赋值为0,0为假,因此不再进行第二次循环,因此答案为:1次
变式训练
将题目的代码改成下方这样,循环一共进行了多少次?
#include <stdio.h>
int main()
{
int i = 0;
int k = 0;
for (i = 0, k = 0; k = 1; i++, k++)
k++;
return 0;
}
分析
由于k = 1返回的结果是1,为真,所以会循环无限次,同理改成for (i = 0, k = 0; k = -1; i++, k++)也是循环无穷多次