如何在 Java 中突破或退出一个方法?

Java 中的关键字 break可用于断开循环或 switch 语句。有什么东西可以用来中断一个方法吗?

528771 次浏览

使用 return关键字退出方法。

public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}

来自我上面链接到的 Java 教程:

任何声明 void 的方法都不返回值。它不需要包含 return 语句,但它可以这样做。在这种情况下,return 语句可以用来分支出控制流块并退出方法,其使用方法如下:

return;

如何在爪哇爆发? ? ?

答: 最好的办法: System.exit(0);

Java 语言提供了三个跳转语句,允许您中断正常的程序流。

这些包括 休息继续返回,< strong > 标记的 break 语句 例如:

import java.util.Scanner;
class demo
{
public static void main(String args[])
{
outerLoop://Label
for(int i=1;i<=10;i++)
{
for(int j=1;j<=i;j++)
{
for(int k=1;k<=j;k++)
{
System.out.print(k+"\t");
break outerLoop;
}
System.out.println();
}
System.out.println();
}
}
}

输出: 1

现在注意下面的程序:

import java.util.Scanner;
class demo
{
public static void main(String args[])
{
for(int i=1;i<=10;i++)
{
for(int j=1;j<=i;j++)
{
for(int k=1;k<=j;k++)
{
System.out.print(k+"\t");
break ;
}
}
System.out.println();
}
}
}

产出:

1
11
111
1111


and so on upto


1111111111

类似地,在上面的例子中,您可以使用 ContinuleStatement,只是将 break 替换为 keep。

记住:

大小写标签不能包含涉及变量或方法调用的运行时表达式

outerLoop:
Scanner s1=new Scanner(System.in);
int ans=s1.nextInt();
// Error s1 cannot be resolved

要添加到其他答案中,还可以通过 抛出一个例外手动退出一个方法:

throw new Exception();

enter image description here

如果在递归方法中深入使用递归,则抛出和捕获异常可能是一个选项。

与只返回一个级别的 Return 不同,异常将从递归方法中分离出来,并进入最初调用它的代码中,在那里可以捕获它。

使用 return退出方法。

 public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}

这是另一个例子

int price = quantity * 5;
if (hasCream) {
price=price + 1;
}
if (haschocolat) {
price=price + 2;
}
return price;

使用 返回关键字退出方法。

public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}

请注意: 我们可以使用 break 语句,这些语句只用于从循环中中断/退出,而不用于整个程序。

退出程序: System.exit ()方法:
System.exit有状态代码,它告诉终止,例如:
Exit (0) : 表示成功终止。
退出(1)或退出(- 1)或任何非零值-表示不成功终止。

if (true) return; 是我使用的最佳解决方案。

为什么?

  • 单独使用 return;: 给出 错误: (105,9) java: unreach 语句
public class Main
{
public static void main(String[] args) {
System.out.println("Hello World 1st code ");
return;
System.out.println("Hello World  2nd code ");
}
}

由于以下错误,编译失败。

Main.java:14: error: unreachable statement
System.out.println("Hello World  2nd code ");
^
1 error

你可以在线测试它使用: https://www.onlinegdb.com/online_java_compiler

  • 使用 退出(int 状态)示例 exit(0);: 正如您所知,终止所有程序(java.lang。Exit ()方法终止当前运行的 Java 虚拟机。;

您可以使用以下代码测试这3种技术:

public class Main
{
public static void do_something(int i)
{
System.out.println(" i : "+i);
        

// break the method
/// System.exit(0); // stop all the program
/// return;        // Main.java:20: error: unreachable statemen
if(true) return;
        

// do some computing
int res = i*i;
        

System.out.println(" res : "+res);
        

}
public static void main(String[] args) {
        

for (int i = 0; i <5; i++)
{
do_something(i);
}
        

System.out.println("Ouiiiii ,  work finished ");
}
}

结果是:

 i : 0
i : 1
i : 2
i : 3
i : 4
Ouiiiii ,  work finished