笔试题 在 Java 中,如何跳出当前的多重嵌套循环?

  1. public class Demo {
  2. public static void main(String[] args) {
  3. System.out.println("方法一:标号方式");
  4. outerloop:
  5. for (int i = 1; i < 5; i++) {
  6. for (int j = 1; j < 5; j++) {
  7. if (i * j > 6) {
  8. System.out.println("Breaking");
  9. break outerloop;
  10. }
  11. System.out.println(i + " " + j);
  12. }
  13. }
  14. System.out.println("Done");
  15. System.out.println("方法二:条件控制");
  16. boolean finished = false;
  17. for (int i = 1; i < 5 && !finished; i++) {
  18. for (int j = 1; j < 5; j++) {
  19. if (i * j > 6) {
  20. System.out.println("Breaking");
  21. finished = true;
  22. break;
  23. }
  24. System.out.println(i + " " + j);
  25. }
  26. }
  27. System.out.println("Done");
  28. System.out.println("方法二变形:条件控制");
  29. for (int i = 1; i < 5; i++) {
  30. for (int j = 1; j < 5; j++) {
  31. if (i * j > 6) {
  32. System.out.println("Breaking");
  33. i = 5;
  34. break;
  35. }
  36. System.out.println(i + " " + j);
  37. }
  38. }
  39. System.out.println("Done");
  40. System.out.println("方法三:抛出异常");
  41. try {
  42. for (int i = 1; i < 5; i++) {
  43. for (int j = 1; j < 5; j++) {
  44. if (i * j > 6) {
  45. System.out.println("Breaking");
  46. throw new Exception();
  47. }
  48. System.out.println(i + " " + j);
  49. }
  50. }
  51. System.out.println("Done");// 此行代码不会执行
  52. } catch (Exception e) {
  53. // System.out.println("e");
  54. }
  55. }
  56. }

参考答案

```
方法一:标号方式
1 1
1 2
1 3
1 4
2 1
2 2
2 3
Breaking
Done
方法二:条件控制
1 1
1 2
1 3
1 4
2 1
2 2
2 3
Breaking
Done
方法二变形:条件控制
1 1
1 2
1 3
1 4
2 1
2 2
2 3
Breaking
Done
方法三:抛出异常
1 1
1 2
1 3
1 4
2 1
2 2
2 3
Breaking
```

方法一:标号方式

  1. System.out.println("方法一:标号方式");
  2. outerloop:
  3. for (int i = 1; i < 5; i++) {
  4. for (int j = 1; j < 5; j++) {
  5. if (i * j > 6) {
  6. System.out.println("Breaking");
  7. break outerloop;
  8. }
  9. System.out.println(i + " " + j);
  10. }
  11. }
  12. System.out.println("Done");

参考答案

```
方法一:标号方式
1 1
1 2
1 3
1 4
2 1
2 2
2 3
Breaking
Done
```

方法二:条件控制

  1. System.out.println("方法二:条件控制");
  2. boolean finished = false;
  3. for (int i = 1; i < 5 && !finished; i++) {
  4. for (int j = 1; j < 5; j++) {
  5. if (i * j > 6) {
  6. System.out.println("Breaking");
  7. finished = true;
  8. break;
  9. }
  10. System.out.println(i + " " + j);
  11. }
  12. }
  13. System.out.println("Done");

参考答案

```
方法二:条件控制
1 1
1 2
1 3
1 4
2 1
2 2
2 3
Breaking
Done
```
  1. System.out.println("方法二变形:条件控制");
  2. for (int i = 1; i < 5; i++) {
  3. for (int j = 1; j < 5; j++) {
  4. if (i * j > 6) {
  5. System.out.println("Breaking");
  6. i = 5;
  7. break;
  8. }
  9. System.out.println(i + " " + j);
  10. }
  11. }
  12. System.out.println("Done");

参考答案

```
方法二变形:条件控制
1 1
1 2
1 3
1 4
2 1
2 2
2 3
Breaking
Done
```

方法三:抛出异常

  1. System.out.println("方法三:抛出异常");
  2. try {
  3. for (int i = 1; i < 5; i++) {
  4. for (int j = 1; j < 5; j++) {
  5. if (i * j > 6) {
  6. System.out.println("Breaking");
  7. throw new Exception();
  8. }
  9. System.out.println(i + " " + j);
  10. }
  11. }
  12. System.out.println("Done");// 此行代码不会执行
  13. } catch (Exception e) {
  14. // System.out.println("e");
  15. }

参考答案

```
方法三:抛出异常
1 1
1 2
1 3
1 4
2 1
2 2
2 3
Breaking
```

参考资料

【笔试题】在 Java 中,如何跳出当前的多重嵌套循环?的更多相关文章

  1. java基础面试题:java中有没有goto? 在JAVA中如何跳出当前的多重嵌套循环?

    goto是Java的保留关键字,但是从来没有直接使用到goto,goto的跳转作用在Java中受到了限制,只有在特定场合下才能使用,如while for等循环中用continue.break或结合标签 ...

  2. 在JAVA中怎样跳出当前的多重嵌套循环?

    在JAVA中怎样跳出当前的多重嵌套循环?         这道题是考察大家对于break语句的应用.同一时候也是对你多重嵌套循环的使用进行考察.在java中,要想跳出多重循环,能够在外循环语句前面定义 ...

  3. 【Java面试题】56 在JAVA中如何跳出当前的多重嵌套循环?

    在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环.例如, public class xunhuan { pu ...

  4. 在JAVA中如何跳出当前的多重嵌套循环?

    在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环.

  5. 在JAVA中如何跳出当前的多重嵌套循环

    可以使用return,但使用return后,会跳出整个函数,多重循环后面的代码无法执行. public static void main(String[] args) { // TODO Auto-g ...

  6. 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?

    笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...

  7. 笔试题之java基础

    Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他.有些题来自网上搜集整理,有些题来自传智 ...

  8. 【笔试题】Java笔试题知识点

    Java高概率笔试题知识点 Java语法基础部分 [解析]java命令程序执行字节码文件是,不能跟文件的后缀名! 1.包的名字都应该是由小写单词组成,它们全都是小写字母,即便中间的单词亦是如此 2.类 ...

  9. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

随机推荐

  1. 【模板】BM + CH(线性递推式的求解,常系数齐次线性递推)

    这里所有的内容都将有关于一个线性递推: $f_{n} = \sum\limits_{i = 1}^{k} a_{i} * f_{n - i}$,其中$f_{0}, f_{1}, ... , f_{k ...

  2. 【poj3718】 Facer's Chocolate Dream

    http://poj.org/problem?id=3718 (题目链接) 题意 给出${2}$个长度为${n}$的${01}$串,问是否存在${m}$个长度为${n}$的有三个位置为${1}$的$0 ...

  3. Codeforces Round #541

    因为这次难得不在十点半(或是更晚),大家都在打,然后我又双叒叕垫底了=.= 自己对时间的分配,做题的方法和心态还是太蒻了,写的时候经常写一半推倒重来.还有也许不是自己写不出来,而是在开始写之前就觉得自 ...

  4. 高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少

    高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少     阅读(81374) | 评论(9)收藏16 淘帖1 赞3   JackJiang Lv.9    1 年前 | 前言 曾几何时我 ...

  5. python数据分析scipy和matplotlib(三)

    Scipy 在numpy基础上增加了众多的数学.科学及工程常用的库函数: 线性代数.常微分方程求解.信号处理.图像处理.稀疏矩阵等: Matplotlib 用于创建出版质量图表的绘图工具库: 目的是为 ...

  6. vue子组件的自定义事件

    父子组件的信息传递无碍就是父组件给子组件传值(props和$attrs)和父组件触发子组件的事件($emit) 之前已经谈过了父组件给子组件传值了,现在来说说父组件触发子组件的自定义事件吧-- 实际上 ...

  7. css 基础1

    css 层叠样式表 css手册 样式写在head 中间 style标签 css 样式规则: 选择器 {属性:属性值:属性:属性值} 字体样式属性:font-size 字号大小 color 字体颜色 f ...

  8. CSS function--(来自网易)

    /* function */ .f-cb:after,.f-cbli li:after{;overflow:hidden;content:".";} .f-cb,.f-cbli l ...

  9. [转载]AngularJS之Factory vs Service vs Provider

    http://www.oschina.net/translate/angularjs-factory-vs-service-vs-provider http://tylermcginnis.com/a ...

  10. ubuntu 开机自动挂载分区

    转载: http://blog.sina.com.cn/s/blog_142e95b170102vx2a.html 我的计算机是双硬盘,一个是windows系统,一个是Fedora和ubuntu系统. ...