Java System. exit (0) vs C++ devuelve 0

Java y C++ son lenguajes con diferentes aplicaciones y objetivos de diseño. C++ es una extensión del lenguaje de programación procedimental C y Java se basa en una máquina virtual Java para ser seguro y altamente portátil. Esto les lleva a muchas diferencias. En este artículo, veremos la diferencia entre C++ return 0 y Java System.exit(0) . Antes de entrar en las diferencias, primero comprendamos qué significa realmente cada uno de ellos.

  • En C++ estándar, se recomienda crear una función main() con un tipo de retorno.
  • Por lo tanto, la función main() debe devolver un valor entero y este valor entero suele ser el valor que se devolverá al sistema operativo.

En stdlib.h , las macros EXIT_SUCCESS y EXIT_FAILURE se definen así:

#define EXIT_SUCCESS    0
#define EXIT_FAILURE    1
  • devuelve 0 -> terminación exitosa.
  • devuelve 1 o cualquier otro valor distinto de cero -> terminación fallida.
  • Devolver diferentes valores como return 1 o return -1 o cualquier otro valor distinto de cero significa que el programa está devolviendo un error.

C++

#include <iostream>
  
using namespace std;
  
int main()
{
    int num1, num2;
    cin >> num1 >> num2;
    cout << num1 + num2;
  
    return 0;
}
Input:
54
4


Output:
58

Lo primero que hay que tener en cuenta es que la función main en java tiene un tipo de retorno void .

  • En Java, no puede devolver el código de salida porque es una función nula. Entonces, si desea especificar explícitamente un código de salida, debe usar el método System.exit() .
  • El método java.lang.System.exit() sale del programa actual al finalizar la ejecución de la máquina virtual Java.

Declaración para el método java.lang.System.exit():

public static void exit(int status)
exit(0) -->successful termination.
exit(1) or exit(-1) or any other non-zero value –-> unsuccessful termination.

Java

import java.io.*;
  
class GFG {
    public static void main (String[] args) {
        System.out.println("GeeksForGeeks");
    }
}
Output:
GeeksforGeeks

Nota: El trabajo de return 0 y System.exit(0) es el mismo que la diferencia en el tipo de devolución de las funciones main() .  

La siguiente tabla describe las diferencias:

NO SEÑOR C++ Devuelve 0
1. La función main() en C++ tiene un tipo de retorno. Por lo tanto, cada método principal en C++ debería devolver cualquier valor. El método main() en Java es de tipo de retorno nulo. Por lo tanto, el método principal no debería devolver ningún valor.
2. En un programa C++, la declaración de retorno 0 es opcional: el compilador agrega automáticamente un retorno 0 en un programa implícitamente. En Java, no hay un requisito especial para llamar a System.exit(0) o agregarlo explícitamente.
3. Es una palabra clave que se utiliza para devolver algún valor, por lo que no necesita ninguna declaración. Solo necesita devolver una palabra clave con valor o variables.   

Declaración para el método java.lang.System.exit():

salida de vacío estático público (estado int)

4. Por lo general, el retorno 0 se usa para devolver el código de salida al sistema operativo. Si queremos especificar explícitamente un código de salida al sistema operativo, tenemos que usar System.exit().
5. Usar retorno 0 en programas C++ se considera una buena práctica. El uso de System.exit(0) se evita en la práctica porque tenemos nuestro método main() con tipo de retorno nulo.

Publicación traducida automáticamente

Artículo escrito por pranjalisingh1201 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *