c语言的循环小问题?

来源:百度知道 编辑:UC知道 时间:2024/06/06 17:53:27
main()
{ int a=10,y=0;
do
{a+=2,y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
}
while(a=14);
};
结果是多少,答案是a=12 y=12
a=16 y=18

A=12 Y=12我知道。我不明白怎么会多出个16与18呀。高手请教下。要请细0呀! <以上为课本上的试题>

是这样的,当然我是这样理解的,对不对需要你自己验证

while(a=14)这句的意思是如果 a=14那么循环结束

如果不是那么循环就继续

所以a绝对不会是14

然而do里加了 break所以循环要看这个

之到y=20,当然不等于20

对吗 自己想想

while(a=14);给a赋值让a=14
这样a不等于0,循环继续