|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于while语句的问题希望各位大侠给点解释
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1068
人关注过本帖
标题:
关于while语句的问题希望各位大侠给点解释
只看楼主
加入收藏
qinbiao
等 级:
新手上路
帖 子:10
专家分:0
注 册:2010-12-6
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:13
关于while语句的问题希望各位大侠给点解释
main()
{
int x=3,y=6,a=0;
while (x++!=(y-=1))
{
a+=1;
if(y<x)break;
}
printf("%d,%d,%d",x,y,a);
}
运行出来结果是 5 4 1
为什么y是4而不是5?a怎么又是1不是3?难道每循环一次(y-=1)都使y的值自减1?a为什么不算+了3次呢
有点不理解 明明循环了3次y的值变了a的值却没变?求解!!!
搜索更多相关主题的帖子:
语句
解释
2010-12-06 19:53
举报帖子
使用道具
赠送鲜花
tfxanxing
等 级:
论坛游侠
威 望:
2
帖 子:82
专家分:165
注 册:2010-5-7
第
2
楼
收藏
得分:20
。。。。。
你是初学者吧!!
建议多看看书!!
2010-12-06 19:57
举报帖子
使用道具
赠送鲜花
qinbiao
等 级:
新手上路
帖 子:10
专家分:0
注 册:2010-12-6
第
3
楼
收藏
得分:0
回复 2楼 tfxanxing
就是初学啊 不懂得很多啊
2010-12-06 19:58
举报帖子
使用道具
赠送鲜花
、镜花氺月
等 级:
论坛游民
帖 子:71
专家分:18
注 册:2010-11-5
第
4
楼
收藏
得分:0
main()
{
int x=3,y=6,a=0;
while (x++!=(y-=1))
//到此处时x+1,y-1
{
a+=1;
if(y<x)break;
}
printf("%d,%d,%d",x,y,a);
}
while又称当行循环,循环第一次时.x=4,y=5.a=1.到第二次时循环不满足. 已经跳出循环了. 所以只循环了一次.
[
本帖最后由 、镜花氺月 于 2010-12-6 20:52 编辑
]
2010-12-06 20:49
举报帖子
使用道具
赠送鲜花
freedgun
等 级:
职业侠客
帖 子:147
专家分:302
注 册:2010-11-11
第
5
楼
收藏
得分:0
条件语句不是 x>y,就输出值吗?
a+=1等于a=a+1
有什么样的付出,就有什么样的收获!!
2010-12-06 20:57
举报帖子
使用道具
赠送鲜花
qinbiao
等 级:
新手上路
帖 子:10
专家分:0
注 册:2010-12-6
第
6
楼
收藏
得分:0
实际运行结果就是x=5 y=4 a=1
while(x++!=(y-=1))时第一次判断时实际上就是while(3++!=5)就是3和5判断成立执行a+=1
第二次判断由于x++
x=4, y初值变成5了y-=1就变成y=4 就是4和4判断 判断条件为假不成立 不执行a+=1所以a直到循环结束还是1
对于if语句x>y输出值 到第二次循环结束 y-=1和y--概念不一样所以还是y=4 第二次循环虽然不成立但是x++却还是自增了2次
所以判定if的时候就是x=5和y=4判定成立输出了x=5 y=4 a=1这样的值
我刚开始学 不知道这么理解是否正确
2010-12-06 21:20
举报帖子
使用道具
赠送鲜花
jkf2012
等 级:
论坛游民
帖 子:18
专家分:30
注 册:2010-11-18
第
7
楼
收藏
得分:0
你的问题集中在第三次循环条件判断上
你这个程序执行了一次循环和二次循环条件判断
第一次循环
第二次循环
X=3,Y=6,A=0
------
X=4,Y=5,A=1 ------- X=5,Y=4,A=1
在C中有一个顺序点的概念,也就是在 “;”或"一个判断条件"结束后所有的运算都结束,包括++ --,所以
while (x++!=(y-=1))
在第三次循环条件判断时候X执行了++运算 从4变成5 ,而Y也执行了
Y-=1 的运算由5变成了4,而由于判断条件不成立
所以第三次循环不执行,所以A还是1,不知到明白了吗?
[
本帖最后由 jkf2012 于 2010-12-6 22:21 编辑
]
2010-12-06 21:48
举报帖子
使用道具
赠送鲜花
qinbiao
等 级:
新手上路
帖 子:10
专家分:0
注 册:2010-12-6
第
8
楼
收藏
得分:0
回复 6楼 qinbiao
请问 怎么是2次循环 3次循环条件判断?
我觉得是1次循环2次循环条件判断
如果是2次循环a+=1; 就执行了2次就应该是2了吧
2010-12-06 22:08
举报帖子
使用道具
赠送鲜花
qinbiao
等 级:
新手上路
帖 子:10
专家分:0
注 册:2010-12-6
第
9
楼
收藏
得分:0
回复 7楼 jkf2012
请问 怎么是2次循环 3次循环条件判断?
我觉得是1次循环2次循环条件判断
如果是2次循环a+=1; 就执行了2次就应该是2了吧
2010-12-06 22:10
举报帖子
使用道具
赠送鲜花
jkf2012
等 级:
论坛游民
帖 子:18
专家分:30
注 册:2010-11-18
第
10
楼
收藏
得分:0
恩对
我打错了
不好意思
已经改正了
2010-12-06 22:21
举报帖子
使用道具
赠送鲜花
14
1/2页
1
2
快速回复:
关于while语句的问题希望各位大侠给点解释
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.024694 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved