黑马程序员技术交流社区

标题: 优化二维数组查询问题 [打印本页]

作者: joeywr    时间: 2015-8-21 00:02
标题: 优化二维数组查询问题
  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.                 }
复制代码

作者: 史柯    时间: 2015-8-21 09:01
我的建议有两个!
实现符合要求后停止多层循环的方法!
1:return 这个可以直接跳出来
2:把判断条件改到最大 i=arrr.length-1  查询到了最后也会自动结束的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2