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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如,
ok:
        for(int i=0;i<10;i++)
        {
                for(int j=0;j<10;j++)
                {
                        System.out.println(“i=” + i + “,j=” + j);
                        if(j == 5) break ok;
                }
        }
另外,我个人通常并不使用标号这种方式,而是让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维数组中查找到某个数字。
int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i<arr.length && !found;i++)
        {
                for(int j=0;j<arr[i].length;j++)
                {
                        System.out.println(“i=” + i + “,j=” + j);
                        if(arr[i][j]  == 5)
                        {
                                found = true;
                                break;
                        }
                }
        }
跳到ok的那个不是和C里面的goto语句一样吗?
两者有什么区别?
又有什么千丝万缕的联系?
还有java中为什么不用goto?

评分

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

查看全部评分

7 个回复

倒序浏览
java中暂时goto还没有定义,如果你要使用类似的,就用continue,break等语句
回复 使用道具 举报
你想要跳出当前循环直接使用break了就行了。如果你想要跳出重循环。你使用break指定标号就可以了。二维数组不也是使用for嵌套遍历的吗?你可以在循环里面进行指定的。
回复 使用道具 举报
没听说过Java有goto这个流氓语句。 一般情况都是用break 结束循环。或者continue结束本次循环。 只要你括号扩的对,就可以结束的
回复 使用道具 举报
其实goto虽然还不是java中的关键字,但是在很多资料里都说过goto是java的保留字,所有这说明有可能以后会用到。你说的上面这种跳出循环,用标号和不用标号都可以实现,但是如果循环很复杂,用标号逻辑更清楚一些,增加了代码的可读性。至于为什么不用goto,那是因为在程序里用goto,内存跳来跳去,容易出错,而且会写出面条式的程序,杂乱无章。所以写大程序的时候,一般是会避免使用goto关键字的,即使在C里也不例外。(个人观点,欢迎交流)

评分

参与人数 1黑马币 +10 收起 理由
xiaowei + 10 赞一个!

查看全部评分

回复 使用道具 举报 1 0
使用标号结合break、continue实现循环控制比较简洁。使用布尔逻辑值控制,如果循环较简单,break和continue使用较少,问题不大,但如果循环较多,break和continue同时使用时,就将设置多个布尔逻辑值进行控制,代码量会增加,增加出错机率。
回复 使用道具 举报
break跳出循环体,continue跳过当前循环
回复 使用道具 举报
恩。问题基本上弄明白了,感谢大家!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马