Come rompere o uscire da un metodo in Java?


123

La parola chiave breakin Java può essere utilizzata per interrompere un ciclo o un'istruzione switch. C'è qualcosa che può essere utilizzato per interrompere un metodo?


2
Vale anche la pena controllare questa domanda: stackoverflow.com/q/18188123/2182237
Don

Risposte:


256

Usa la returnparola chiave per uscire da un metodo.

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

Dal tutorial Java a cui ho collegato sopra:

Qualsiasi metodo dichiarato void non restituisce un valore. Non è necessario che contenga una dichiarazione di ritorno, ma potrebbe farlo. In tal caso, un'istruzione return può essere utilizzata per uscire da un blocco del flusso di controllo e uscire dal metodo e viene semplicemente utilizzata in questo modo:

return;

Funzionerà per uscire da un costruttore? So che è un po 'strano ma ho bisogno di questo trucco.
stillanoob

44

Per aggiungere alle altre risposte, puoi anche uscire da un metodo generando un'eccezione manualmente:

throw new Exception();

inserisci qui la descrizione dell'immagine


18

Come scoppiare in Java ??

Risposta: Modo migliore: System.exit(0);

Il linguaggio Java fornisce tre stati di salto che consentono di interrompere il normale flusso del programma.

Questi includono break , continue , return , istruzione break etichettata per es

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

Produzione: 1

Ora nota sotto il programma:

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

produzione:

1
11
111
1111

and so on upto

1111111111

Allo stesso modo puoi usare l'istruzione continue semplicemente sostituire break con continue nell'esempio precedente.

Cose da ricordare :

Un'etichetta case non può contenere espressioni di runtime che coinvolgono chiamate di variabili o metodi

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

4

Se sei profondamente nella ricorsione all'interno del metodo ricorsivo, lanciare e catturare eccezioni potrebbe essere un'opzione.

A differenza di Return che restituisce solo un livello superiore, l'eccezione si interromperà dal metodo ricorsivo anche nel codice che inizialmente lo ha chiamato, dove può essere catturata.


1

utilizzare returnper uscire da un metodo.

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

Ecco un altro esempio

int price = quantity * 5;
        if (hasCream) {
            price=price + 1;
        }
        if (haschocolat) {
            price=price + 2;
        }
        return price;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.