Java中控制循环的关键字(break,continue,return,System.exit(0))

文章目录

一、break:结束循环
二、continue:结束本次循环
三、return:结束方法
四、System.exit(0):正常终止整个程序

大部分摘自:<疯狂Java讲义精粹>

一、break:结束循环

break用于完全结束一个循环,跳出循环体.
一旦在循环体中遇到break,系统将完全结束该循环,开始执行循环之后的代码.

break语句不仅可以结束其所在的循环,还可以直接结束其外层循环.此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环.
Java中的标签就是一个紧跟着英文冒号(:)的标识符.与其他语言不同,Java中的标签只有放在循环语句之前才有作用.
例:

public class BreakTest {
public static void main(String[] args) {
// 外层循环,outer作为标识符
outer:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 3; j++) {
System.out.println(“i的值为:” + i + " j的值为:" + j);
if (j == 1) {
//跳出outer标签所标识的循环
break outer;
}
}
}
}
}
/*
运行结果:
i的值为:0 j的值为:0
i的值为:0 j的值为:1
*/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

解释:
当j等于1时,程序遇到一个break outer;语句,这行代码将会导致结束outer标签指定的循环,不是结束break所在的循环,而是结束break循环的外层循环.
通常紧跟break之后的标签,必须在break所在循环的外层循环之前定义才有意义
二、continue:结束本次循环

continue知识终止本次循环,接着开始下一次循环;而break则是完全终止循环本身.
可以理解为continue的作用是跳过当次循环中剩下的语句,重新开始一次新的循环.

continue后也可以紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句,重新开始下一次循环.
例:

public class ContinueTest {
public static void main(String[] args) {
//外层循环
outer:
for (int i = 0; i < 5; i++) {
//内层循环
for (int j = 0; j < 3; j++) {
System.out.println(“i的值为:” + i + " j的值为:" + j);
if (j == 1) {
//跳出outer标签所指定的循环
continue outer;
}
}
}
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

解释:
循环变量j的值将无法超过1,因为每当j等于1时,continue outer语句就结束了外层循环的当次循环,直接开始下一次循环,内层循环没有机会执行完成.
continue后的标签也必须是一个有效标签,即这个标签通常应该放在continue所在标签的外层循环之外定义.
三、return:结束方法

return关键字并不是专门用于结束循环的,return的功能是结束一个方法.当一个方法执行到一个return语句时,这个方法将被结束.

与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内.
四、System.exit(0):正常终止整个程序

终止当前运行的Java虚拟机。这个参数用作状态代码;按照约定,非零状态代码表示异常终止。

下面为System类中exit(int status)方法源码:

public static void exit(int status) {
Runtime.getRuntime().exit(status);
}

1
2
3

可知:System.exit(0) 等价于 Runtime.getRuntime().exit(0);

通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。此方法从不正常返回。可以将变量作为一个状态码;根据惯例,非零的状态码表示非正常终止。

虚拟机的关闭序列包含两个阶段。在第一个阶段中,会以某种未指定的顺序启动所有已注册的关闭钩子 (hook)如果有的话),并且允许它们同时运行直至结束。在第二个阶段中,如果已启用退出终结,则运行所有未调用的终结方法。一旦完成这个阶段,虚拟机就会暂停。

如果在虚拟机已开始其关闭序列后才调用此方法,那么若正在运行关闭钩子,则将无限期地阻断此方法。如果已经运行完关闭钩子,并且已启用退出终结 (on-exit finalization),那么此方法将利用给定的状态码(如果状态码是非零值)暂停虚拟机;否则将无限期地阻断虚拟机。

System.exit 方法是调用此方法的一种传统而便捷的方式。

————————————————
版权声明:本文为CSDN博主「-Clearlight」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36852780/article/details/88830294

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
System.exitJava的一个方法,用于终止当前正在运行的Java虚拟机。根据传入的参数不同,System.exit可以实现正常终止和异常终止两种状态的退出。当参数为0时,即System.exit(0),表示程序正常退出。而当参数为非零的整数时,即System.exit(非零的int型参数),表示程序异常退出。\[1\]\[2\] 正常终止和异常终止的区别在于使用场景的不同。正常终止一般用于程序按照预期执行完毕后需要停止程序的情况,而异常终止一般用于捕获到异常后需要立即停止程序的情况。例如,在一个if-else判断,如果程序按照预期执行到最后需要停止程序,可以使用System.exit(0);而如果捕获到异常后需要停止程序,可以使用System.exit(1)。\[1\] 举个例子,假设我们有一个Java类名为test,其使用了try-catch语句。在try块进行除法运算,如果输入的除数为0,则会抛出ArithmeticException异常,并执行catch块的代码。在catch块,可以输出异常信息并使用System.exit(-1)来异常终止程序。\[2\]\[3\] 总之,System.exit方法可以用于终止当前正在运行的Java虚拟机,根据传入的参数不同可以实现正常终止和异常终止两种状态的退出。具体使用哪种状态的退出取决于使用场景的需求。 #### 引用[.reference_title] - *1* [java终止程序语句总结 System.exit(1)、System.exit(0)、returnbreakcontinue;](https://blog.csdn.net/mingtiandejueze/article/details/83388043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [System.exit()方法的详解](https://blog.csdn.net/qq_40474507/article/details/119116506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值