今天想到了这个问题,就简单的说一下
在java中
break是用于在循环中结束一个循环体的关键字,特点:只能结束跟它最近的一层循环体,比如说有两层循环体,break在第二层,则在条件触发break时只会结束内层循环,如果要结束所有循环有三个办法
一:.给循环定义语句标签,java定义这个语句标签的目的好像就是为了用来表示循环,可能也是一种变相的实现goto语句的方法吧
[java]
public static void main(String[] args) {
<STRONG>Out:</STRONG>
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
System.out.println("i="+i+",j="+j);
if(i==j){
<STRONG>break Out;</STRONG>
}
}
}
}
二:设置一个flag,在每次执行外循环的时候判断是不是需要跳出循环,在内循环里设置这个标记,相当于内循环通知外循环需要跳出就跳出,代码如下:
[java]
public static void main(String[] args) {
boolean stepOut = false;
for(int i=0;i<10;i++){
<STRONG>if (stepOut) {
break;
}</STRONG>
for(int j=0;j<10;j++){
System.out.println("i="+i+",j="+j);
if(i==j){
<STRONG>stepOut = true;
break;</STRONG>
}
}
}
}
三:三.把循环部分剥离出来成为一个独立的函数,在需要跳出循环时直接return(但是这种办法要考虑好返回值和传入参数的问题)代码如下:
[java]
public static void main(String[] args) {
getResult();
}
private static void getResult() {
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
System.out.println("i="+i+",j="+j);
if(i==j){
return;
}
}
}
}
continue跟break的作用类似,但它不是结束所有循环,而是结束continue后面的代码,然后接着下次循环开始。
return 可以跳出多层循环,比如说A方法调用了B方法,B方法不管有多少层循环只要有return直接就把值赋给A ,跳出所有循环。