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

public class Demo {
public static void main(String[] args) {
System.out.println("方法一:标号方式");
outerloop:
for (int i = 1; i < 5; i++) {
for (int j = 1; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
break outerloop;
}
System.out.println(i + " " + j);
}
}
System.out.println("Done"); System.out.println("方法二:条件控制");
boolean finished = false;
for (int i = 1; i < 5 && !finished; i++) {
for (int j = 1; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
finished = true;
break;
}
System.out.println(i + " " + j);
}
}
System.out.println("Done"); System.out.println("方法二变形:条件控制");
for (int i = 1; i < 5; i++) {
for (int j = 1; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
i = 5;
break;
}
System.out.println(i + " " + j);
}
}
System.out.println("Done"); System.out.println("方法三:抛出异常");
try {
for (int i = 1; i < 5; i++) {
for (int j = 1; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
throw new Exception();
}
System.out.println(i + " " + j);
}
}
System.out.println("Done");// 此行代码不会执行
} catch (Exception e) {
// System.out.println("e");
}
}
}

参考答案

```
方法一:标号方式
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
```

方法一:标号方式

System.out.println("方法一:标号方式");
outerloop:
for (int i = 1; i < 5; i++) {
for (int j = 1; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
break outerloop;
}
System.out.println(i + " " + j);
}
}
System.out.println("Done");

参考答案

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

方法二:条件控制

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

参考答案

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

参考答案

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

方法三:抛出异常

System.out.println("方法三:抛出异常");
try {
for (int i = 1; i < 5; i++) {
for (int j = 1; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
throw new Exception();
}
System.out.println(i + " " + j);
}
}
System.out.println("Done");// 此行代码不会执行
} catch (Exception e) {
// System.out.println("e");
}

参考答案

```
方法三:抛出异常
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. 【刷题】LOJ 6005 「网络流 24 题」最长递增子序列

    题目描述 给定正整数序列 \(x_1 \sim x_n\) ,以下递增子序列均为非严格递增. 计算其最长递增子序列的长度 \(s\) . 计算从给定的序列中最多可取出多少个长度为 \(s\) 的递增子 ...

  2. 【洛谷P1522】牛的旅行

    题目大意:给定一个 N 个顶点的无向图,图中有若干联通块,现定义联通块的直径为该联通块中距离最远的两个点的距离,定义无向图的直径为这个图中所有联通块直径的最大值.现在在图上加一条边,使得两个本不连通的 ...

  3. Nginx反向代理下IIS获取真实IP

    1. iis 如果放在反向代理后面,日志里的c-ip是反向代理服务器的ip,不是真正用户的ip,想要记录用户的ip要做两件事. 一.在反向代理设置X-Forwarded-For段,以下为nginx下的 ...

  4. python之旅:网络编程

    一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...

  5. HDU 6181 第k短路

    Two Paths Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 153428/153428 K (Java/Others)Total ...

  6. 个推数据统计产品(个数)iOS集成实践

    最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数据统计产品通过专业的 ...

  7. 错误 1 无法将文件“obj\Debug\XXX.exe”复制到“bin\Debug\XXX.exe”。文件“bin\Debug\XXX.exe”正由另一进程使用,因此该进程无法访问该文件

    在重新生成Windows服务的时候出现的这个问题,原因是因为你的Windows服务已经在运行了,你可以卸载掉这个服务,也可以在资源管理器里直接关闭.

  8. WebService和Http的POST和GET请求区别和示例

    web service(SOAP) Webservice的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力.Web service 就是一个应用程序,它向外界暴露出一个能够通过Web ...

  9. bzoj千题计划184:bzoj1261: [SCOI2006]zh_tree

    http://www.lydsy.com/JudgeOnline/problem.php?id=1261 dp[l][r][dep]  区间[l,r]内的节点,根在dep层的最小代价 枚举根i,dp[ ...

  10. Splay模板讲解及一些题目

    普通平衡树模板以及文艺平衡树模板链接. 简介 平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二 ...