A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄珍 中级黑马   /  2012-4-8 10:22  /  5480 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int i = 0;
int sum=0;
while(i<=100)
{
    if(i%11==0) {continue;}
    i++;   sum+=i;
}

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

14 个回复

倒序浏览
continue是进入下一步,而不是跳出整个循环。
在你的程序中表现为:
一开始i是0,判断成立,continue之后,直接进入第二个循环,i还是0,如此无限循环

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 赵潮江 于 2012-4-8 10:40 编辑

如果你这个程序段的意思是遇到能被11整除的sum就不累加
则可以改为:
int i = 0;
int sum=0;
while(i<=100)
{
    if(i%11==0) {i++;continue;}
    i++;   sum+=i;
}

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
int sum = 0;
            for (int i = 0; i <= 100; i++)
            {
                if (i % 11 == 0)
                {
                    continue;
                }
                else
                {
                    sum += i;
                }
            }

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
continue是跳出本次循环,进入下次循环
你这样写
int i = 0;
int sum=0;
while(i<=100)
{
     if(i%11==0) {continue;}
     i++;   sum+=i;
}
代码每次执行到continue就跳出本次循环,i永远等于1这样写是不正确的

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
continue 语句将控制权传递给它所在的封闭迭代语句的下一次迭代。
continue语句和break语句相似。所不同的是,它不是退出一个循环,而是开始循环的一次新迭代。

int i = 0;
            int sum = 0;
            for (i = 0; i <= 100; i++)
            {  //当i是11的倍数时,跳出正在执行的循环,而不执行 for 循环体末尾之间的语句
                if (i % 11 == 0)
                {
                    continue;
                }
                sum += i;
                Console.WriteLine("i={0},sum={1}", i, sum);
            }
            
            Console.ReadKey();

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
continue不是跳出循环
break才是

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 刘冬晓 于 2012-4-8 12:00 编辑

如果是想跳出本次循环的话,就在if语句中写入i++,因为只有这样i的值才会改变,否则就一直是满足条件的那个数;如果是想跳出整个循环的话,就用break。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
continue是进入下一次循环,不执行continue下面的代码。

int i = 0;
int sum=0;
while(i<=100)
{
    if(i%11==0) {continue;} //当循环到i=11时,i%11==0 表达式为true,执行continue进入下一个循环
     i++;   sum+=i;              //这个时候i++就没执行,i 任然是11,因此下一次循环还会执行continue,这样造成了死循环。
}

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
continue不是跳出整个循环用的!! 要跳出整个循环用break;  continue是用来结束当前循环,不在执行continue之后的语句。进行下一步循环用的!!! 而不是像break一样跳出整个循环,是有区别的!   

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
用一下break即可……
continue仅能结束单次循环.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
contioue 是跳出本次循环,进行下一次循环,你这个跳不出去是因为i求余一直等于11条件一直成立当然跳不出去
如果在continue之前i自增一下,就可以跳出了;
break;是终止整个main函数;只要执行到这一步就可以跳出整个函数

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
contioue 是继续执行的意思,break才是跳出循环,n你这弄成死循环去了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
肯定跳不出去,i++没有被执行,满足i%11==0这个条件,就直接进行下一次循环,但是i的值一直没有变,所以变成了死循环.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
pray 高级黑马 2014-4-26 05:18:40
15#
真乃神人啊!楼主的帖子实在是光彩夺目。子曰:三人行而必有我师焉。斯言善哉。不知不觉上网这么多年,好的坏的PP都看过了,看多了。渐渐的也觉得没什么意思了。渐渐觉得自己已经达到奋斗的顶峰了。可是,第一眼看到楼主浅笑嫣然的时候,我的眼前竟然感觉一亮!仿佛看到了倾城倾国的美人,正轻摇柳步款款而行。正好似楼主的外表,相貌端正,天庭饱满。好片啊!只有那种真理在握,洞视这个世界真实本质的人,才能显示出这样惊人的魅力。在日益苍白肤浅的网络里,我从楼主的PP中不但看到了美丽,更加看到了网络的希望。为表达我对楼主的敬意,也是为了向楼主学习。我决心要把这个帖子顶上去!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马