众所周知,在Java中,如果想跳出for循环,一般情况下有两种方法:break和continue。
break是跳出当前for循环,如下面代码所示:
public class RecTest {
/**
* @param args
*/
public static void main(String[] args) {
for(int i=0 i< 10 i++){
if(i==5){
break
}
System.out.print(i+" ")
}
}
}
输出:0 1 2 3 4
也就是说,break会跳出(终止)当前循环。continue是跳出当前循环,开始下一循环,如下所示:
public class RecTest {/**
* @param args
*/
public static void main(String[] args) {
for (int i = 0 i < 10 i++) {
if (i == 5) {
continue
}
System.out.print(i+" ")
}
}
}
输出:0 1 2 3 4 6 7 8 9
以上两种方法没有办法跳出多层循环,如果需要从多层循环跳出,则需要使用标签,定义一个标签label,
然后在需要跳出的地方,用break
label就行了,代码如下:
public class RecTest {/**
* @param args
*/
public static void main(String[] args) {
loop: for (int i = 0 i < 10 i++) {
for (int j = 0 j < 10 j++) {
for (int k = 0 k < 10 k++) {
for (int h = 0 h < 10 h++) {
if (h == 6) {
break loop
}
System.out.print(h)
}
}
}
}
System.out.println("\nI'm here!")
}
}
输出:
012345
I'm here!
在 java 中,在循环语句的执行语句中赋予变量值的操作不会导致变量被释放。Java 中的变量在被声明后,会在内存中分配一块存储空间,并保存该变量的值。在执行循环语句时,变量值会被重复赋值,但是它的存储空间并不会被释放。
当循环结束后,变量的值可能会发生变化,但是变量本身的存储空间并不会被释放。它只有在程序执行结束后,Java 虚拟机才会清理内存并释放相关资源。
因此,在 java 中,在循环语句的执行语句中赋予变量值的操作不会导致变量被释放。
再试一次重新路由
java 停止一个死循环,可以使用break关键字,跳出循环,如下代码:
package com.qiu.lin.hepublic class Ceshi {
public static void main(String[] args) {
for (int i = 2 i > 0 i++) {
if (i == 80) {
System.out.println("死循环退出了")
break
}
}
}
}
运行结果如下: