Wie kann man eine Methode in Java ausbrechen oder beenden?


123

Das Schlüsselwort breakin Java kann zum Ausbrechen einer Schleife oder einer switch-Anweisung verwendet werden. Gibt es irgendetwas, mit dem man von einer Methode abbrechen kann?


2
Diese Frage könnte auch eine Überprüfung wert sein: stackoverflow.com/q/18188123/2182237
Don

Antworten:


255

Verwenden Sie das returnSchlüsselwort, um eine Methode zu verlassen.

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

Aus dem Java-Tutorial, auf das ich oben verlinkt habe:

Jede als ungültig deklarierte Methode gibt keinen Wert zurück. Es muss keine return-Anweisung enthalten, kann dies aber tun. In einem solchen Fall kann eine return-Anweisung verwendet werden, um aus einem Kontrollflussblock herauszukommen und die Methode zu beenden. Sie wird einfach wie folgt verwendet:

return;

Funktioniert dies, um einen Konstruktor zu verlassen? Ich weiß, dass es ein bisschen seltsam ist, aber ich brauche diesen Hack.
Stillanoob

44

Um die anderen Antworten zu ergänzen, können Sie eine Methode auch beenden, indem Sie eine Ausnahme manuell auslösen:

throw new Exception();

Geben Sie hier die Bildbeschreibung ein


18

Wie in Java ausbrechen?

Ans: Bester Weg: System.exit(0);

Die Java-Sprache bietet drei Sprungstatistiken, mit denen Sie den normalen Programmfluss unterbrechen können.

Dazu gehören break , continue , return , beschriftete break-Anweisung für z

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();
            }
    }   
}

Ausgabe: 1

Jetzt Hinweis unter Programm:

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();
            }
    }   
}

Ausgabe:

1
11
111
1111

and so on upto

1111111111

In ähnlicher Weise können Sie die Anweisung continue verwenden, indem Sie break im obigen Beispiel durch continue ersetzen.

Dinge, an die man sich erinnern sollte:

Eine Fallbezeichnung darf keine Laufzeitausdrücke enthalten, die Variablen- oder Methodenaufrufe beinhalten

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

4

Wenn Sie sich innerhalb der rekursiven Methode tief in der Rekursion befinden, kann das Auslösen und Abfangen von Ausnahmen eine Option sein.

Im Gegensatz zu Return, das nur eine Ebene höher zurückgibt, würde die Ausnahme auch aus der rekursiven Methode in den Code ausbrechen, der sie ursprünglich aufgerufen hat, wo sie abgefangen werden kann.


1

Verwenden Sie returndiese Option, um eine Methode zu verlassen.

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

Hier ist ein weiteres Beispiel

int price = quantity * 5;
        if (hasCream) {
            price=price + 1;
        }
        if (haschocolat) {
            price=price + 2;
        }
        return price;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.