#include<stdio.h>
int main ( )
{
int x = 0;
while ( x <= 10 )
for ( ; ; )
if ( ++x % 10 == 0 )
break;
printf("%d", x);
return 0;
}
我知道程序产生什么作为输出,但是在干运行时输出有点令人困惑。你能解释一下吗?
答案 0 :(得分:1)
它打印20。 我猜你期待0,如果是这样你就错了'++ x'。 无论如何,我会解释实际发生的事情。
while ( x <= 10 )
for ( ; ; )
if ( ++x % 10 == 0 )
break
在此之前x = 0。它通过'While'然后'for'。 ++ x变为1,如果失败,因为1%10不等于0. x保持递增直到x = 10,现在如果条件满足,则“10%10 == 0”为真,如果条件为真且去打破,来自'for'。
现在x = 10,当“10&lt; = 10”为真时它会通过。它通过'for'。 ++ x变为11,因此如果条件失败,则'11%10 == 0'为假。 x继续增加,直到值为20.当'20%10 == 0时,如果条件为真并且中断,则出现'for'。
现在虽然条件失败,因为'20&lt; = 10'是假的。
节目打印'20'