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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© joeywr 中级黑马   /  2015-8-21 00:02  /  505 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /* 关于跳出多层循环问题
  2.    * 1.可以采用标号问题(但是不建议使用)
  3.    * 2.采用一个break和一个标记符号flag
  4.    * 要求:例如一个二维数组问题,要在二维数组中查找到某个数字。
  5.    * 思路:而是让外层的循环条件表达式的结果可以
  6.    *     受到里层循环体代码的控制,例如,要在二
  7.    *     维数组中查找到某个数字。
  8.    * */
  9.                 int arr[][] ={{1,2,3},{4,5,6,7},{9}};
  10.                 boolean flag = false;
  11.                 int key = 1;
  12.                 //可以在第一层的判断的时候就可以做旗帜标记,
  13.                 //这样的话就有用了多个判断,可以早点结束这个循环
  14.                 for (int i = 0; i < arr.length && ! flag; i++) {
  15.                         for (int j = 0; j < arr[i].length; j++) {
  16.                            if(key == arr[i][j])
  17.                            {
  18.                            //一旦找到了这个数就得跳出嵌套循环
  19.                            //怎么做呢?
  20.                              flag = true;
  21.                              System.out.println(flag);
  22.                              break;
  23.                            }
  24.                         }               
  25.                 }
复制代码

2 个回复

正序浏览
我的建议有两个!
实现符合要求后停止多层循环的方法!
1:return 这个可以直接跳出来
2:把判断条件改到最大 i=arrr.length-1  查询到了最后也会自动结束的

点评

合理建议  发表于 2015-8-21 10:58
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马