当前位置:首页 > 问答大全 > C语言For 循环

C语言For 循环

程序如图,我怎么也理解不了为什么 最后运行结果x=-1,y=22
被浏览: 0次 2023年08月17日 08:01
热门回答(5个)
游客1

for循环的格式为for(表达式1;表达式2;表达式3),只要“表达式2”为真,for循环就一直进行。
你的for循环中的表达式2为 x>答燃=10,y<20 ,这是一个如巧逗号表达式,而逗号表清橡虚达式的值为最右边一个表达式的值。因此你的for一直循环到y>=20时才停止,出现你上面的结果也就不足为奇了。

如果你想要在x>=10且y<20的时候执行循环,可以把表达式2改为(x>=10)&&(y<20) ,这样就对了!

游客2

关键在于:
逗号表达式: expr0 = (expr1, expr2) 无论expr1的值是多少,腊模答 expr = expr2;
for(x=0, y=0; x>=10, y<20; x--, y++)
等价于
for( (x=0, y=0); (x>=10, y<20); (x--, y++) ) // 由上面知道x>=10 x的值不变 故不起到作用
等价于
for( (x=0, y=0); ( y<20); (x--, y++) )

另外 还要注意
for(x=0, y=0; x>=10, y<20; x--, y++)
{ //是不是少很多括弧啊 否则死循环 你哪来的结果啊
x/=2;
y+=2;
}//这样结果是:0 20

是不是你自己输入错??轮慧码亩??

游客3

首先你的判断条件用喊核了逗号 所以x>=10这模消个条件被忽略了
所以最后一次循环y=20 共20次循环郑码掘
而x的值:
30-14-6-2-0-(-1)-(-1)...
看出来了吗

游客4

你的循环条件很混铅源乱呀。\
for(y=0,y<20,y++)
y+=2
y=2+1=3+2=5+1=6+2=8+1=9+2=11+1=12+2=13+1=14+2=16+1=17+2=19+1=20
y=22
for(x=30,x>=10,x--)
x=x/2
30/2=15-1=14/闷激袜蚂激2=7-1=6

游客5