2011-09-29 38 views
9

Utilizamos funciones como exit() en C++ para terminar anormalmente la ejecución del programa, función que podemos usar en Java. Por ejemplo: - En el siguiente programa, deseo terminar la ejecución tan pronto como el valor de i se imprima por primera vez.¿Qué método se utiliza para finalizar la ejecución del programa Java en el medio?

//following is the program : 
class Lcm { 
     public static void main(String args[]) { 

      int a = Integer.parseInt(args[0]); 
      int b = Integer.parseInt(args[1]); 

      for (int i=1 ; i<=a*b ; i++) { 
       if (i%a==0 && i%b==0) { 
        System.out.println("lcm is: " + i); 
        /* i want to terminate the program 
        * when the value of i is printed 
        * for very 1st time 
        */ 
       } 
      } 
     } 
    } 
} 
+0

Por favor, formatee su pregunta correctamente. – m0skit0

+0

¿Cómo se relaciona esto con C? – Praetorian

Respuesta

11

System.exit(0) o Runtime.getRuntime().exit(0)

+0

Son lo mismo. 'System.exit (0)' se implementa como 'Runtime.getRuntime(). Exit (0)' –

+0

@Eng. sí lo es. System.exit() llamaría a Runtime.getRuntime(). Exit() –

5

Utilice break para salir del ciclo y deje que la función finalice naturalmente, o return para salir de la función por completo.

Tal vez es finalmente tiempo para aprender a controlar su flujo sin goto declaraciones y sus equivalentes (exit, longjmp, try..catch utilizado para el control de flujo, etc.).

7

Puede hacerlo de esta manera:

System.exit(0); 
0

En C, C++Java y el programa termina cuando el main/Main función/método devuelve. La diferencia es que en Java el tipo de devolución Main es void. En la terminación normal siempre devuelve éxito.

Para indicar una terminación anómala y devolver un código de salida distinto de cero, use System.exit.

2

Ésta es una buena manera de terminar la aplicación en Java:

System.exit(0); 

Ejemplo:

if (num1 == num2) { 
    System.exit(0); 
} 
0

En su caso específico simplemente podría escapar del bucle mediante el uso de break, que se vería el siguiente:

for (int i = 1 ; i <= a*b ; i++) { 
    if (i%a == 0 && i%b == 0) { 
     System.out.println("lcm is: " + i); 
     break; 
    } 
} 

Porque no hay código siguiente, pero también puede, a s otro mencionado anteriormente, use el comando System.exit(0) para terminar realmente su programa.

Otra forma posible es cambiar un poco el código y poner el if-statement directamente en nuestra terminación de bucle. De esta manera podría tener este aspecto:

int i = 0; 
while (++i < a*b && !(i % a == 0 && i % b == 0)); 
System.out.println(j); 

que es un poco más difícil de leer, pero usted no necesita un comando adicional para poner fin a su programa. El punto y coma detrás de la "condición de tiempo" simplemente dice que mientras el ciclo está en ejecución, no se debe hacer nada. En ese caso, su ciclo simplemente cuenta su variable. Para una mejor legibilidad, también podría poner el conteo de 'i' en el cuerpo del bucle.

Cuestiones relacionadas