Closed. This question needs
details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过
editing this post阐明问题。
2年前关闭。
#include<stdio.h>
int main ( )
{
int x = 0;
while ( x <= 10 )
for ( ; ; )
if ( ++x % 10 == 0 )
break;
printf("%d", x);
return 0;
}
我知道程序作为输出产生什么,但是就我何时空运行它而言,输出有点令人困惑。你能解释一下吗?
打印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”,如果条件为true,则继续打破,来自“为”。
现在x = 10,当“ 10 <= 10”为true时,它通过。它通过“ for”。
++ x变为11,因此如果条件失败,因为“ 11%10 == 0”为假。 x一直增加直到值是20。由于'20%10 == 0,如果条件为真并终止,则从'for'中出来。
现在条件失败,因为“ 20 <= 10”为假。
程序打印'20'
我是一名优秀的程序员,十分优秀!