Das Schlüsselwort break
in Java kann zum Aufbrechen einer Schleife oder Schalteranweisung verwendet werden. Gibt es irgendetwas, das verwendet werden kann, um von einer Methode abzubrechen?
Wie kann man eine Methode in Java ausbrechen oder beenden?
Ali
Markus Peters
Verwenden Sie die return
Schlüsselwort zum Verlassen einer Methode.
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
Aus dem oben verlinkten Java-Tutorial:
Jede für void deklarierte Methode gibt keinen Wert zurück. Es muss keine return-Anweisung enthalten, kann es aber. In einem solchen Fall kann eine return-Anweisung verwendet werden, um aus einem Kontrollflussblock zu verzweigen und die Methode zu verlassen, und wird einfach so verwendet:
return;
-
Wird dies funktionieren, um einen Konstruktor zu verlassen? Ich weiß, es ist ein bisschen seltsam, aber ich brauche diesen Hack.
– stillanoob
21. Oktober 2016 um 12:35 Uhr
-
Ich erhalte eine Fehlermeldung beim Beenden der Funktion mit dem Rückgabetyp int[] Rückgabe verwenden; im if-Zustand. Kannst du erklären warum?
– Vocado_
9. Oktober 2021 um 7:25 Uhr
-
@Vocado_xiix: Dieses Beispiel ist für die Rückkehr von a
void
Methode. Wenn Ihre Methode einen Wert zurückgeben muss, dann wäre es so etwas wiereturn array;
woarray
ist etwas, das Sie in der Methode erstellt haben.– Markus Peters
9. Oktober 2021 um 15:01 Uhr
-
@Vocado_ , Es sollte ein Rückgabeobjekt geben (es könnte sein
return null
)– Smiley
10. März um 14:03 Uhr
Um die anderen Antworten zu ergänzen, können Sie eine Methode auch verlassen, indem Sie eine Ausnahme werfen manuell:
throw new Exception();
Isabella Ingenieur
Wie kann man in Java ausbrechen?
Antwort: Am besten: System.exit(0);
Die Java-Sprache bietet drei Sprunganweisungen, mit denen Sie den normalen Programmablauf unterbrechen können.
Diese beinhalten Unterbrechung , fortsetzen ,Rückkehr ,beschriftete break-Anweisung
für zB
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
Beachten Sie jetzt das folgende 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();
}
}
}
Ausgang:
1
11
111
1111
and so on upto
1111111111
In ähnlicher Weise können Sie die Continue-Anweisung verwenden, indem Sie im obigen Beispiel einfach break durch Continue ersetzen.
Dinge, an die Sie sich erinnern sollten:
Eine Fallbezeichnung darf keine Laufzeitausdrücke mit Variablen- oder Methodenaufrufen enthalten
outerLoop:
Scanner s1=new Scanner(System.in);
int ans=s1.nextInt();
// Error s1 cannot be resolved
Wenn Sie tief in der Rekursion innerhalb der rekursiven Methode sind, 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 eine Ausnahme auch aus der rekursiven Methode in den Code ausbrechen, der sie ursprünglich aufgerufen hat, wo sie abgefangen werden kann.
verwenden return
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;
ibra
if (true) return;
ist die beste Lösung, die ich verwende. Sie können if(condition)-Tests verwenden, die wahr oder falsch ergeben.
Wieso den?
- verwenden
return;
allein: gibt Fehler: (105, 9) Java: nicht erreichbare Anweisung
public class Main
{
public static void main(String[] args) {
System.out.println("Hello World 1st code ");
return;
System.out.println("Hello World 2nd code ");
}
}
Die Kompilierung ist aufgrund folgender Fehler fehlgeschlagen.
Main.java:14: error: unreachable statement
System.out.println("Hello World 2nd code ");
^
1 error
Sie können es online testen mit: https://www.onlinegdb.com/online_java_compiler
- verwenden exit (int-Status) Beispiel
exit(0);
: Wie Sie wissen, beenden Sie das gesamte Programm (Die Methode java.lang.System.exit() beendet die derzeit ausgeführte Java Virtual Machine. Siehe Ref.) ; Exit erlaubt es also nicht, nur die Methode zu unterbrechen und die Ausführung des Aufrufers fortzusetzen
Sie können die 3 Techniken mit dem folgenden Code testen:
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 ");
}
}
Das Ergebnis:
i : 0
i : 1
i : 2
i : 3
i : 4
Ouiiiii , work finished
Atharva
Verwenden Sie die Rückkehr Schlüsselwort zum Verlassen einer Methode.
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
Bitte beachten Sie: Wir können Break-Anweisungen verwenden, die nur zum Unterbrechen/Beenden einer Schleife und nicht des gesamten Programms verwendet werden.
So verlassen Sie das Programm: System.exit() Methode:
System.exit
hat einen Statuscode, der über die Beendigung informiert, wie zum Beispiel:
exit(0) : Zeigt eine erfolgreiche Beendigung an.
exit(1) oder exit(-1) oder ein beliebiger Wert ungleich Null – zeigt eine erfolglose Beendigung an.
Diese Frage könnte auch eine Überprüfung wert sein: stackoverflow.com/q/18188123/2182237
– Anziehen
12. August 2013 um 20:03 Uhr