¿Cómo romper o salir de un método en Java?

123

La palabra clave breaken Java se puede usar para romper un bucle o cambiar una declaración. ¿Hay algo que pueda usarse para romper un método?

Ali
fuente
2
También vale la pena consultar esta pregunta: stackoverflow.com/q/18188123/2182237
Don

Respuestas:

256

Use la returnpalabra clave para salir de un método.

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

Desde el Tutorial de Java que he vinculado anteriormente:

Cualquier método declarado vacío no devuelve un valor. No necesita contener una declaración de devolución, pero puede hacerlo. En tal caso, una declaración de retorno puede usarse para ramificarse fuera de un bloque de flujo de control y salir del método y simplemente se usa así:

return;
Mark Peters
fuente
¿Funcionará esto para salir de un constructor? Sé que es un poco extraño, pero necesito este truco.
stillanoob
44

Para agregar a las otras respuestas, también puede salir de un método lanzando una excepción manualmente:

throw new Exception();

ingrese la descripción de la imagen aquí

Saltos
fuente
18

¿Cómo salir en Java?

Respuesta: Mejor manera: System.exit(0);

El lenguaje Java proporciona tres estados de salto que le permiten interrumpir el flujo normal del programa.

Estos incluyen la interrupción , continuar , regresar , declaración de interrupción etiquetada para, por ejemplo,

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

Salida: 1

Ahora tenga en cuenta el siguiente programa:

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

salida:

1
11
111
1111

and so on upto

1111111111

De manera similar, puede usar la instrucción continue solo reemplace break con continue en el ejemplo anterior.

Cosas para recordar :

Una etiqueta de caso no puede contener expresiones de tiempo de ejecución que involucren llamadas a variables o métodos

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

Si está profundamente en recursión dentro del método recursivo, lanzar y atrapar una excepción puede ser una opción.

A diferencia de Return que devuelve solo un nivel hacia arriba, la excepción se rompería también del método recursivo en el código que inicialmente lo llamó, donde se puede atrapar.

Audrius Meskauskas
fuente
1

use returnpara salir de un método.

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

Aquí hay otro ejemplo

int price = quantity * 5;
        if (hasCream) {
            price=price + 1;
        }
        if (haschocolat) {
            price=price + 2;
        }
        return price;
kiyah
fuente