| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1213 人关注过本帖
标题:关于while循环的一个判断问题
只看楼主 加入收藏
moniker
Rank: 2
等 级:论坛游民
帖 子:6
专家分:34
注 册:2009-8-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
关于while循环的一个判断问题
   大牛们,今天做二级时遇到这个问题,下面是源程序和运行结果:
#include<stdio.h>
void main()
{
    int a=1,b=2,c=3,t;
    while(a<b<c)
    {
        printf("%d,%d,%d\n",a,b,c);
        t=a;a=b;b=t;c--;
        printf("%d,%d,%d\n",a,b,c);
        printf("\n");
    }
}
结果:1,2,3
      2,1,2
      2,1,2
      1,2,1
就是在第二次执行while循环时a=2,b=1,c=2,应该已经不满足判断条件a<b<c,可是为什么还是执行了循环呀?
搜索更多相关主题的帖子: 判断 
2009-08-31 22:38
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:10 
第二次循环
a<b<c
先判断a<b即2<1其表达式为假,即为0
再判断0<c?? 即0<2? 成立,执行循环。
2009-08-31 22:51
gengjf025
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2008-11-22
收藏
得分:7 
回复 楼主 moniker
你可以这么理解a<b<c:
如果a<b为true,那么if(a<b<c)实则为if(1<c),
如果a<b为false,那么if(a<b<c)实则在判断if(0<c)
2009-08-31 22:52
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:2 
a=2,b=1,c=2
if(a<b<c) /*这是满足条件的。a<b<c可以看成(a<b)<c, a<b这判断为假0,0<c这判断为真1,a<b<c结果为真1,所以满足条件。*/

努力—前进—变老—退休—入土
2009-08-31 22:52
cpubaozha
Rank: 2
等 级:等待验证会员
帖 子:9
专家分:37
注 册:2009-8-31
收藏
得分:1 
把while (a<b<c)改成while(a<b&&b<c&&a<c)就你的了 1,2,3   2,1,2了,
 
2009-08-31 22:54
moniker
Rank: 2
等 级:论坛游民
帖 子:6
专家分:34
注 册:2009-8-30
收藏
得分:0 
以下是引用godbless在2009-8-31 22:51的发言:
第二次循环
a
哦,原来是这么回事,那就是说只要最后为真就可以执行了!
2009-08-31 22:56
mxuchael
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2009-9-1
收藏
得分:0 
简单的讲因为b<c所以循环
2009-09-01 22:36
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:0 
了解了,又学习了。
2009-09-01 22:59
choco1024
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:183
专家分:140
注 册:2008-8-31
收藏
得分:0 
嗯,不错不错,开始我也没明白,因为之前就没写过那样的程序。
2009-09-01 23:15
chao1573
Rank: 2
等 级:论坛游民
帖 子:23
专家分:28
注 册:2007-6-28
收藏
得分:0 
呵呵,原来大家都知道
2009-09-02 23:04
快速回复:关于while循环的一个判断问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018482 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved