【笔试题】在 Java 中,如何跳出当前的多重嵌套循环?
笔试题 在 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 中,如何跳出当前的多重嵌套循环?的更多相关文章
- java基础面试题:java中有没有goto? 在JAVA中如何跳出当前的多重嵌套循环?
goto是Java的保留关键字,但是从来没有直接使用到goto,goto的跳转作用在Java中受到了限制,只有在特定场合下才能使用,如while for等循环中用continue.break或结合标签 ...
- 在JAVA中怎样跳出当前的多重嵌套循环?
在JAVA中怎样跳出当前的多重嵌套循环? 这道题是考察大家对于break语句的应用.同一时候也是对你多重嵌套循环的使用进行考察.在java中,要想跳出多重循环,能够在外循环语句前面定义 ...
- 【Java面试题】56 在JAVA中如何跳出当前的多重嵌套循环?
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环.例如, public class xunhuan { pu ...
- 在JAVA中如何跳出当前的多重嵌套循环?
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环.
- 在JAVA中如何跳出当前的多重嵌套循环
可以使用return,但使用return后,会跳出整个函数,多重循环后面的代码无法执行. public static void main(String[] args) { // TODO Auto-g ...
- 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?
笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...
- 笔试题之java基础
Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他.有些题来自网上搜集整理,有些题来自传智 ...
- 【笔试题】Java笔试题知识点
Java高概率笔试题知识点 Java语法基础部分 [解析]java命令程序执行字节码文件是,不能跟文件的后缀名! 1.包的名字都应该是由小写单词组成,它们全都是小写字母,即便中间的单词亦是如此 2.类 ...
- 从阿里巴巴笔试题看Java加载顺序
一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...
随机推荐
- zk会话,快照,序列化,本地存储
FolloewerRequestProcessor类 追随者 输入会有不同的形式,客户端请求,提议,提交事务 通过箭头来标示追随者处理的不同路径 本地存储 事务日志和快照 SyncRequestPro ...
- 【转】巧用CAT706做掉电检测
相信大家都会遇到这样的情况,当你正在敲一份文档或一段代码时,啪的一下停电啦,我擦……,我的代码……,我的图纸……,我刚写好的文章…….但是在嵌入式系统中也会遇到类似的情况,通常会导致嵌入式系统数据,程 ...
- java实现超大整数加减乘除四则运算
原理: 用数组存储数字,按照计算法则进行运算. 代码: package com.hdwang; import java.util.regex.Matcher; import java.util.reg ...
- 解题:国家集训队 Middle
题面 求中位数的套路:二分,大于等于的设为1,小于的设为-1 于是可以从小到大排序后依次加入可持久化线段树,这样每次只会变化一个位置 那左右端点是区间怎么办? 先把中间的算上,然后维护每个区间左右两侧 ...
- LOJ#2540 随机算法
题意:给定图,随机一个排列,依次加点,如果加点之后不是独立集就不加.求最后得到一个最大独立集的概率. 解:就是求有多少个排列可以加出最大独立集. 显然有一个3n的状压DP,0表示没加,1表示没加上,2 ...
- CF1025D Recovering BST
题意:给定序列,问能否将其构成一颗BST,使得所有gcd(x, fa[x]) > 1 解:看起来是区间DP但是普通的f[l][r]表示不了根,f[l][r][root]又是n4的会超时,怎么办? ...
- Java基础-hashMap原理剖析
Java基础-hashMap原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是哈希(Hash) 答:Hash就是散列,即把对象打散.举个例子,有100000条数 ...
- Swift学习笔记1
1.Swift 的String类型是值类型. 如果您创建了一个新的字符串,那么当其进行常量.变量赋值操作,或在函数/方法中传递时,会进行值拷贝. 任何情况下,都会对已有字符串值创建新副本,并对该新副本 ...
- POJ 3252 Round Number(数位DP)
Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6983 Accepted: 2384 Des ...
- bzoj千题计划291:bzoj3640: JC的小苹果
http://www.lydsy.com/JudgeOnline/problem.php?id=3640 dp[i][j] 表示i滴血到达j的概率 dp[i][j] = Σ dp[i+val[i]][ ...