【Java面试题】56 在JAVA中如何跳出当前的多重嵌套循环?
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,
即可跳出外层循环。例如,
public class xunhuan {
public static void main(String[] args) {
ok:
for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
System.out.println("i=" + i +",j=" + j);
if(j == 5) break ok;
}
}
for(int i=0;i<4;i++){
for(int j=0;j<5;j++){
System.out.println("i="+i+"; j="+j);
if(j==3){
i=4;
break;
}
}
}
}
}
运行结果:
i=0,j=0
i=0,j=1
i=0,j=2
i=0,j=3
i=0,j=4
i=0,j=5
i=0; j=0
i=0; j=1
i=0; j=2
i=0; j=3
另外,我个人通常并不使用标号这种方式,而是让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二
维数组中查找到某个数字。
public class xunhuan {
public static void main(String[] args) {
int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i<arr.length && !found;i++) {
for(int j=0;j<arr[i].length;j++){
System.out.println("i=" + i + "j=" + j);
if(arr[i][j] == 5) {
found = true;
break;
}
}
}
}
}
运行结果:
i=0,j=0
i=0,j=1
i=0,j=2
i=1,j=0
i=1,j=1
【Java面试题】56 在JAVA中如何跳出当前的多重嵌套循环?的更多相关文章
- java基础面试题:java中有没有goto? 在JAVA中如何跳出当前的多重嵌套循环?
goto是Java的保留关键字,但是从来没有直接使用到goto,goto的跳转作用在Java中受到了限制,只有在特定场合下才能使用,如while for等循环中用continue.break或结合标签 ...
- 在JAVA中怎样跳出当前的多重嵌套循环?
在JAVA中怎样跳出当前的多重嵌套循环? 这道题是考察大家对于break语句的应用.同一时候也是对你多重嵌套循环的使用进行考察.在java中,要想跳出多重循环,能够在外循环语句前面定义 ...
- 在JAVA中如何跳出当前的多重嵌套循环?
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环.
- 在JAVA中如何跳出当前的多重嵌套循环
可以使用return,但使用return后,会跳出整个函数,多重循环后面的代码无法执行. public static void main(String[] args) { // TODO Auto-g ...
- 【笔试题】在 Java 中,如何跳出当前的多重嵌套循环?
笔试题 在 Java 中,如何跳出当前的多重嵌套循环? public class Demo { public static void main(String[] args) { System.out. ...
- 【Java面试题】解释内存中的栈(stack)、堆(heap)和静态存储区的用法
Java面试题:解释内存中的栈(stack).堆(heap)和静态存储区的用法 堆区: 专门用来保存对象的实例(new 创建的对象和数组),实际上也只是保存对象实例的属性值,属性的类型和对象本身的类型 ...
- Java面试题总结之Java基础(二)
Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...
- Java面试题总结(一)---Java基础
Java面试题总结(一)---Java基础 1.面向对象的特征有哪些? 答:面向对象的特征主要有以下几个: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方 ...
- 面试题56 - I. 数组中数字出现的次数
面试题56 - I. 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 ...
随机推荐
- svnserve配置文件详析
svnserve是SVN自带的一个轻型服务器,客户端通过使用以svn://或svn+ssh://为前缀的URL来访问svnserve服务 器,实现远程访问SVN版本库. svnserve可以通过配置文 ...
- 在Spring中注入Java集合
集合注入重要是对数组.List.Set.map的注入,具体注入方法请参照一下代码(重点是applicationContext.xml中对这几个集合注入的方式): 1.在工程中新建一个Departmen ...
- 成员函数的重载&&隐藏&&覆盖
/* *成员函数的重载,覆盖,隐藏 *重载: *1.同样的范围(在同一个类中) *2.函数名同样 *3.參数不同 *4.virtualkeyword可有可无 *覆盖是指派生类覆盖基类的函数,特征是: ...
- ubuntu下gcc-avr安装
ubuntu下研究arduino时发现,原来可以不用arduino IDE开发,linux下还有gcc-avr直接开发avr系列的控制器. 于是,迫不及待的查看了下相关资料,总结一下安装gcc-avr ...
- ZYSocket 4.2.3 SOCKET框架组 发布[NEW]
http://blog.csdn.net/luyikk/article/details/6099337
- Linux经常使用命令(六) - mv
mv命令是move的缩写.能够用来移动文件或者将文件改名(move (rename) files),是Linux系统下经常使用的命令,经经常使用来备份文件或者文件夹. 1.命令格式: mv [选项] ...
- schema中的虚拟属性方法
schema中的虚拟属性方法相当于vue中的计算属性,它是通过已定义的schema属性的计算\组合\拼接得到的新的值 var personSchema = new Schema({ name: { f ...
- angular学习笔记(二十一)-$http.get
基本语法: $http.get('url',{}).success(function(data,status,headers,config){}).error(function(data,status ...
- WPF学习之X名称空间详解
X名称空间里面的成员(如X:Name,X:Class)都是写给XAML编译器看的.用来引导XAML代码将XAML代码编译为CLR代码. 4.1X名称空间里面到底都有些什么? x名称空间映射的是:htt ...
- C#通过“委托和事件”的方式实现进程监控并与“普通方式”对比
今天重新学习了一下观察者模式,对我的思路产生了启发.进程监控程序之前写过几个,这回换一种思路,改用委托和事件来实现.我已经用序号将关键的几步标注,方便大家理顺思路.代码如下: using System ...