c语言中while(y--)是怎么结束的

main(){inty=10;while(y--);printf("y=%d",y);}这个语句没有说判断Y会在什么时候结束,但是输出结果却是y=-1,,我不明白y是怎么... main()

{

int y=10;

while(y--);

printf("y=%d",y);

}

这个语句没有说判断Y会在什么时候结束 ,但是输出结果却是y=-1 ,,我不明白y是怎么结束的,我认为它会无限循环的
展开
 我来答
吉祥二进制
高粉答主

2015-05-22 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84583

向TA提问 私信TA
展开全部

实际while(y--)是执行了两步:

1、先将y和0进行比较,判断y是不是0,如果是0则条件不成立 。

2、判断完成后,再将y减去1的结果赋值给y。在C语言中控制结构的条件表达式,始终是一个顺序点,以上面的while语句为例来说,编译器始终保证表达式y--完全执行完毕后,再执行循环体或者循环体以外的语句。


举个例子,假设y=10。编写如下代码:


#include <stdio.h>
int main()

int y = 10;
int count = 0;
while (y--) {
++count;
printf("第%d次:y=%d\n", count, y);
}
printf("最后y的值:%d\n", y); 
return 0;
}

运行结果:

注意图中最后的一行,此时y的值是-1,这就是顺序点。通过图片,也可以看到详细的执行过程。

百度网友3028fd6b8
2010-01-21 · TA获得超过686个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:0
展开全部
当while()中的条件值为0时,循环就结束了。

开始y = 10,每循环一次y的值就减1(y--会导致y减1),当y值一直减到0时,退出while循环,但是还要继续做y--操作,所以y最后的值就是-1。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式