我对c编程非常陌生。以下程序的输出是 一二二一,但我不知道为什么。任何人都可以向我解释这个吗?
#include <stdio.h>
{
int i, j, k = 100;
for(i=0;i<2;i++)
{
printf("One");
for(j=0;k;j++)
{
printf("Two");
k -=50;
}
}
return 0;
}
答案 0 :(得分:0)
外部for循环执行两次。因为我从0开始,条件i<0
被满足,所以它运行。运行后,我增加到1,再次运行,我增加到2,然后不运行,因为条件i<2
不再满足。这就是你的两个输出&#34; one&#34;来自。
每次外循环运行时,都会创建内部for循环。 j从0开始,但内循环的条件只是k
。首先,k
设置为100.这里是凌乱的地方。为了使for循环运行,条件必须是&#34;而不是false&#34;。 False可以是0
的数值,也可以是null
。因为它不是内部for循环中的任何一个运行,并且除非条件由for循环之外的东西手动更改,否则它将永远运行。幸运的是,它实际上是在for循环中更改并且在运行两次之后(并且输出two
两次),k的值现在为0并退出循环。
总而言之,执行顺序为:
i=0
,"one"
被打印)"two"
被打印)"two"
被打印)
"one"
被打印)