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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaocai 初级黑马   /  2012-4-9 17:34  /  2094 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Testque4 {
                public static void main(String[] args) {
                                int index = 0;
                                while (index <= 1000) {
                                                index = index + 5;//?????                                                                                                                                                                                                                                                               
                                                if (index == 400) {
                                                                continue;
                                                }       
                                                System.out.println("The index is " + index);
                                    
                                }
                }
}


class Testque3 {
                public static void main(String[] args) {
                                int index = 0;
                                while (index <= 1000) {
                                                                                                                                                                                                                                                                                                               
                                                if (index == 400) {
                                                                continue;
                                                }       
                                                System.out.println("The index is " + index);
                                                index = index + 5;//?????
                                }
                }
}
为什么第一个程序从5显示,跳过400,到1005结束;而第二个从0开始,到395结束??

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

7 个回复

倒序浏览
第一个程序当你每次满足while条件以后进入循环体,把index的值加上5赋值给index,所以每次打印的时候,index的值都会比进入循环刚开始的时候多5,if语句里面的条件是当index=400的时候就结束剩下的语句开始下一次循环,所以400被跳过,此时index的值应该是395,最后一次循环的时候index刚刚进入循环条件的时候是1000,进入循环体值增加了5,所以最后就是以1005打印结束

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
第二个程序最后结束的时候打印的是确实是395,
回复 使用道具 举报
continue关键字——结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,因为也执行不到
回复 使用道具 举报
顺便补充下,continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,会停止运行剩余的循环主体,而是回到循环的开始处继续运行。
回复 使用道具 举报
第一个程序因为continue只会结束本次循环,当index=400时结束本次循环,即以后的代码都不会执行了,不会打印出400,接着再进入循环直到index=1000,执行index = index + 5,输出1005,再执行循环时就不满足条件了!
第二个程序当index=395时 ;打印出index=395,然后执行 index = index + 5,index=400,执行到  if (index == 400) {   continue;}      会跳出本次循环,再进入循环,重复执行上个操作,变成死循环!
                                                              
                                                   
回复 使用道具 举报
对continue理解的还是不透彻,谢谢大家
回复 使用道具 举报
对continue理解的还是不透彻,谢谢大家
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马