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?
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 comoreturn array;
dóndearray
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();
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;
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
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.
También vale la pena consultar esta pregunta: stackoverflow.com/q/18188123/2182237
– Don
12 de agosto de 2013 a las 20:03