如何在Java中中断或退出方法?

时间:2011-10-29 04:34:06

标签: java break

Java中的关键字break可用于中断循环或switch语句。有没有什么可以用来打破方法?

7 个答案:

答案 0 :(得分:223)

使用return关键字退出方法。

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

从我上面链接的Java教程:

  

声明为void的任何方法都不返回值。它不需要包含return语句,但它可以这样做。在这种情况下,可以使用return语句分支出一个控制流程块并退出该方法,并且只是像这样使用:

return;

答案 1 :(得分:38)

要添加到其他答案,您还可以通过手动抛出异常退出方法:

throw new Exception();

enter image description here

答案 2 :(得分:17)

如何突破java ??

答:最佳方式:System.exit(0);

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

其中包括中断继续返回标记为中断的声明 例如

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

同样,您可以在上面的示例中使用continue语句将continue替换为continue。

要记住的事情:

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

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

答案 3 :(得分:4)

如果您在递归方法中深入递归,则抛出和捕获异常可能是一种选择。

与只返回一级的Return不同,异常会从递归方法中分解出最初调用它的代码,它可以被捕获。

答案 4 :(得分:1)

使用 return 关键字退出方法。

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

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

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

答案 5 :(得分:0)

使用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;

答案 6 :(得分:0)

if (true) return; 是我使用的最佳解决方案。您可以使用 if(condition) 测试来判断真假。

为什么?

  • 单独使用 return; :给出 Error:(105, 9) java: unreachable statement
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

  • 使用 exit(int status) 示例 exit(0); :如您所知,终止所有程序(java.lang.System.exit() 方法终止当前运行的 Java 虚拟机。 See ref.) ; 所以退出,不允许只破坏方法并继续调用者的执行

您可以使用以下代码测试这 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