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