24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 644  |  回复: 5

joansky

金虫 (小有名气)

[求助] 请教一个while loop的问题

下面两个while loop的小程序,第二个比第一个多了一行,在跳出while loop后为什么会output n=4的值?

main ( ) {
        int n = 0;
       
        while (n++<3)  
                printf("n is %d\n", n);               
       
        printf("That's all this program does.\n";
}

OUTPUT:
n is 1
n is 2
n is 3
That's all this program does.

----------------------------------------------------------------------------------------

main ( ) {
        int n = 0;
       
        while (n++<3)  
                printf("n is %d\n", n);               
        printf("n is %d\n", n);
        printf("That's all this program does.\n";
}

OUTPUT:
n is 1
n is 2
n is 3
n is 4
That's all this program does.
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengxc

木虫 (著名写手)

【答案】应助回帖

★ ★
jjdg(金币+2): 感谢参与 2011-06-07 15:09:01
第二个printf("n is %d\n", n);已经是在WHILE循环外边了,循环在n=3输出后,又n++,变成4,不满足n++<3,跳出循环
2楼2011-06-07 08:38:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

joansky

金虫 (小有名气)


jjdg(金币+1): 感谢参与 2011-06-07 15:09:12
引用回帖:
Originally posted by mengxc at 2011-06-07 08:38:30:
第二个printf("n is %d\n", n);已经是在WHILE循环外边了,循环在n=3输出后,又n++,变成4,不满足n++<3,跳出循环

我的理解是,n++是先用n的值再+1。n=3,回到while loop后,应该先和3比较,如果满足,就++,如果不满足就不应该++了,对不对?
3楼2011-06-07 09:46:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengxc

木虫 (著名写手)

【答案】应助回帖

★ ★
joansky(金币+5): 2011-06-07 11:17:14
ben_ladeng(金币+2): 欢迎常来参与讨论 2011-06-07 13:10:49
引用回帖:
Originally posted by joansky at 2011-06-07 09:46:04:
我的理解是,n++是先用n的值再+1。n=3,回到while loop后,应该先和3比较,如果满足,就++,如果不满足就不应该++了,对不对?

“n++是先用n的值再+1。n=3,回到while loop后,应该先和3比较"这没错
但是后面的++是不管满足不满足都要执行的。n++就是先取n的值,再加1
4楼2011-06-07 09:55:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

joansky

金虫 (小有名气)

引用回帖:
Originally posted by mengxc at 2011-06-07 09:55:12:
“n++是先用n的值再+1。n=3,回到while loop后,应该先和3比较"这没错
但是后面的++是不管满足不满足都要执行的。n++就是先取n的值,再加1

谢谢你
5楼2011-06-07 11:16:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengxc

木虫 (著名写手)

★ ★
xzhdty(金币+2): 有你回更精彩 2011-06-07 16:51:47
引用回帖:
Originally posted by joansky at 2011-06-07 11:16:55:
谢谢你

6楼2011-06-07 11:46:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 joansky 的主题更新
信息提示
请填处理意见