如何破解或退出Java中的方法?


Answers:


255

使用return关键字退出方法。

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

从上面链接到的Java教程:

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

return;

这可以从构造函数中退出吗?我知道这有点奇怪,但是我需要这个技巧。
stillanoob

44

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

throw new Exception();

在此处输入图片说明


18

如何在java中爆发?

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

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

这些包括breakcontinuereturn带有标签的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

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

要记住的事情:

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

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

4

如果您深入研究递归方法内部的递归,则可以选择抛出和捕获异常。

与Return只返回上一级的Return不同,Exception会从递归方法中脱颖而出,并进入最初调用它的代码中,从而可以在其中捕获它。


1

用于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;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.