| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:在while里的增量运算符有点没搞明白
只看楼主 加入收藏
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
在while里的增量运算符有点没搞明白
增量运算符和顺序点的问题有点 没明白,下面是代码一:


#include  <stdio.h>

int main (void)
{
    int count, sum;

    count = 0;
    sum = 0;

    while (count++ <20)
    {
        sum = sum + count;
        printf ("sum = %d\n", sum);
    }

        getch ( );
        return 0;
    }


运行结果是:
sum = 1
sum = 3
sum = 6
……
==================================================


代码二:



#include <stdio.h>

int main (void)
{
    int i;
    i = 1;

    while ( i++ < 5)
    {
        printf ("早上好啊! ");
    }


    return 0;
}



输出结果是:
早上好啊!早上好啊!早上好啊!早上好啊!

=============================================
不解:

在代码一中,count++ <20是while循环的判断条件,是完整表达式,c要保证副作用,所以会先加上1了再进行后面的语句,因此第1个结果是sum = 1而不是 sum = 0. 如果按照这个思路的话,代码二中的 i++ < 5也一样要先加1了再进行后面的语句啊,结果就应该只是显示3个“早上好啊”而不是4个,可运行结果是4个,想不通啊?谢谢您了 !

[ 本帖最后由 yaozuo3292 于 2012-4-10 15:03 编辑 ]
搜索更多相关主题的帖子: count return include void 
2012-04-10 15:02
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:5 
代码二中是4个,i=1,2,3,4都输出一次 不就是四次吗?最后一次i=4,先判定i<5,然后再把i++,但是依然会进入循环

[ 本帖最后由 飞莲 于 2012-4-10 15:18 编辑 ]
2012-04-10 15:17
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
收藏
得分:0 
回复 2楼 飞莲
可是按照代码一的思路,i在while里的值应该从2开始啊(代码一 while (count++ <20) 就是从1开始进行运算而不是0啊)
2012-04-10 15:24
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:10 
不一样啊,代码一里面也是从0开始,不过你进入循环以后count已经变成1了.
2012-04-10 15:30
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
收藏
得分:0 
回复 4楼 飞莲
那我可不可以这样理解:

代码二中i 还是1,如果下面的语句中不是直接printf而是包含了含有i 运算的语句,那i 才会变成2。而代码二while中没包含i 的运算语句,所以i 从1开始?
2012-04-10 15:37
xtay1324
Rank: 2
等 级:论坛游民
帖 子:6
专家分:11
注 册:2012-3-13
收藏
得分:5 
i++是先判断再加1,i++ < 5,先i++的值不变,执行完语句后才是i+1
2012-04-10 15:40
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
收藏
得分:0 
回复 6楼 xtay1324
恩恩,主要是代码一我理解有误,所以才会对代码二产生错误判断,现在知道了,谢谢您了!
2012-04-10 15:42
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
收藏
得分:0 
回复 4楼 飞莲
明白了,谢谢您了!
2012-04-10 15:42
简体字01
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:137
注 册:2012-3-4
收藏
得分:0 
回复 6楼 xtay1324
学习了。
2012-04-10 15:48
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:0 
回复 5楼 yaozuo3292
不管循环里面有没有i,你判断完以后i就增加了.你可以在代码二的循环里面也输出i下试试.输出的结果是2,3,4,5,
2012-04-10 15:53
快速回复:在while里的增量运算符有点没搞明白
数据加载中...
 
   



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

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