标题:真的不服。
只看楼主
莹幸儿
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2018-3-23
结帖率:22.22%
已结贴  问题点数:20 回复次数:12 
真的不服。
#include<stdio.h>
main()
{
    int x,y;
    for(x=y=1;x<=100;x++)
    {
        if(y>=10)
        break;
        if(y%3==1)
        {
            y=y+3;
            continue;
        }
    }
    printf("%d\n",x);//bufu,5
}
这段逻辑我是真的不懂
我觉就应该输出x=5
结果是4.为神马。
最后y=10,break推出了循环,表达是3不应该再执行一次么?
搜索更多相关主题的帖子: break 输出 结果 神马 循环 
2018-04-06 10:24
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
得分:2 
break就跳出循环了,既然跳出循环了怎么还会执行for循环的第三个表达式?
2018-04-06 11:56
莹幸儿
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2018-3-23
得分:0 
回复 2楼 李晨经纪人
意思就是,如果把for 的第三个表达是拿出来就应该放在for子语句的最后,再break后面,
执行了break跳出循环则跳过了x++
2018-04-06 22:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:4 
        if(y%3==1)
        {
            y=y+3;
            continue;
        }
看似这几句可以直接改为:
            y=y+3;
            continue;
2018-04-07 05:40
莹幸儿
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2018-3-23
得分:0 
回复 4楼 吹水佬
这和我的问题好像没什么关系
2018-04-08 19:32
螃蟹爱吃小鱼
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:51
专家分:145
注 册:2018-3-6
得分:4 
我们以x<=100为结点,第一次判断是y=1,x=1,第二次时y=4,x=2,第三次时y=7,x=3,第四次时y=10,x=4,第四次后因为y>=10,所以终止循环,x=4
2018-04-08 20:23
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:4 
以下是引用莹幸儿在2018-4-8 19:32:38的发言:

这和我的问题好像没什么关系

y=1, y=y+3, y%3==1
代码就可简化为:
#include<stdio.h>
main()
{
    int x,y;
    for(x=y=1;x<=100 && y<10; x++,y+=3);
    printf("%d\n",x);
}
这样是否更容易看出问题所在了
2018-04-08 20:42
莹幸儿
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2018-3-23
得分:0 
回复 6楼 螃蟹爱吃小鱼
就是改循环中如果执行break就不执行表达式3
2018-04-09 18:15
莹幸儿
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2018-3-23
得分:0 
回复 7楼 吹水佬
就是,若表达式2不成了则不执行表达式3
2018-04-09 18:17
螃蟹爱吃小鱼
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:51
专家分:145
注 册:2018-3-6
得分:2 
回复 8楼 莹幸儿
执行break就直接跳出循环了,break后面的不执行
2018-04-09 19:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-485790-1-1.html




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

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