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

4 minutos de lectura

avatar de usuario
Ali

la palabra clave break en Java se puede usar para salir de un bucle o una declaración de cambio. ¿Hay algo que pueda usarse para romper con un método?

  • También vale la pena consultar esta pregunta: stackoverflow.com/q/18188123/2182237

    – Don

    12 de agosto de 2013 a las 20:03

avatar de usuario
Marcos Peters

Utilizar el return palabra clave para salir de un método.

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

Del Tutorial de Java al que me vinculé arriba:

Cualquier método declarado nulo no devuelve un valor. No es necesario que contenga una declaración de devolución, pero puede hacerlo. En tal caso, se puede usar una declaración de retorno para salir de un bloque de flujo de control y salir del método y simplemente se usa así:

return;

  • ¿Funcionará esto para salir de un constructor? Sé que es un poco extraño, pero necesito este truco.

    – Stillanoob

    21/10/2016 a las 12:35

  • Recibo un error al salir de la función con el tipo de retorno int[] usando retorno; en si condición. ¿Puedes explicar porque?

    – Vocado_

    9 oct 2021 a las 7:25

  • @Vocado_xiix: este ejemplo es para volver de un void método. Si su método necesita devolver un valor, entonces sería algo como return array; dónde array es algo que creaste en el método.

    – Mark Peters

    9 oct 2021 a las 15:01

  • @Vocado_ , Debería haber un objeto de retorno (podría ser return null)

    – cara sonriente

    10 de marzo a las 14:03

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

throw new Exception();

ingrese la descripción de la imagen aquí

avatar de usuario
Isabel Ingeniera

¿Cómo salir en Java?

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

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

Éstos incluyen descanso , Seguir ,devolver ,declaración de ruptura etiquetada
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();
            }
    }   
}

Producción: 1

Ahora nota debajo del 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();
            }
    }   
}

producción:

1
11
111
1111

and so on upto

1111111111

De manera similar, puede usar la declaración de continuación simplemente reemplace romper con continuar 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

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

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

usar return para 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;

avatar de usuario
ibra

if (true) return; es la mejor solución que utilizo. puede usar pruebas if (condición) que dan verdadero o falso.

¿Por qué?

  • usando return; solo: da Error: (105, 9) java: declaración inalcanzable
public class Main
{
    public static void main(String[] args) {
        System.out.println("Hello World 1st code ");
        return;
        System.out.println("Hello World  2nd code ");
    }
}

La compilación falló debido a los siguientes errores.

Main.java:14: error: unreachable statement
        System.out.println("Hello World  2nd code ");
        ^
1 error

Puedes probarlo en línea usando: https://www.onlinegdb.com/online_java_compiler

  • usando salida (estado int) ejemplo exit(0); : como sabe, finalice todo el programa (el método java.lang.System.exit() finaliza la máquina virtual Java que se está ejecutando actualmente. Ver ref.) ; Así que exit, no permite romper solo el método y continuar la ejecución de la persona que llama

Puedes probar las 3 técnicas usando el siguiente código:

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

El resultado:

 i : 0                                                                                                                                          
 i : 1                                                                                                                                          
 i : 2                                                                                                                                          
 i : 3                                                                                                                                          
 i : 4                                                                                                                                          
Ouiiiii ,  work finished 

avatar de usuario
Atharva

Utilizar el devolver palabra clave para salir de un método.

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

Tenga en cuenta: podemos usar declaraciones de interrupción que se usan para interrumpir/salir solo de un bucle, y no de todo el programa.

Para salir del programa: Método System.exit():
System.exit tiene un código de estado, que informa sobre la terminación, como:
exit(0) : Indica terminación exitosa.
exit(1) o exit(-1) o cualquier valor distinto de cero: indica una terminación fallida.

¿Ha sido útil esta solución?