Java System.exit(0) vs C++ return 0
Java and C++ are languages with different applications and design goals. C++ is an extension of procedural programming language C and Java relies on a Java virtual machine to be secure and highly portable. This leads them to many differences. In this article, we will see the difference between C++ return 0 and Java System.exit(0). Before getting into the differences, let us first understand what each of them actually means.
C++ return 0
- In Standard C++, it is recommended to create a main() function with a return type.
- So, the main() function must return an integer value and this integer value is usually the value that will be passed back to the operating system.
In stdlib.h the macros EXIT_SUCCESS and EXIT_FAILURE are defined like this :
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
- return 0 –> successful termination.
- return 1 or any other non-zero value –> unsuccessful termination.
- Returning different values like return 1 or return -1 or any other non-zero value means that program is returning 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
Java System.exit(0)
The first thing to take into consideration is that the main function in java has a return type void.
- In Java, you can’t return the exit code, because it’s a void function. So, if you want to explicitly specify an exit code, you have to use System.exit() method.
- The java.lang.System.exit() method exits the current program by terminating running Java virtual machine.
Declaration for java.lang.System.exit() method:
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
Note: The work of both return 0 and System.exit(0) is the same as the difference in the return type of the main() functions.
The following table describes the differences:
SR.NO |
C++ Return 0 |
Java System.exit(0) |
1. |
The main() function in C++ has a return type. Hence, every main method in C++ should return any value. |
The main() method in java is of void return type. Hence, main method should not return any value. |
2. |
In a C++ program return 0 statement is optional: the compiler automatically adds a return 0 in a program implicitly. |
In Java, there is no special requirement to call System.exit(0) or add it explicitly. |
3. |
It is a keyword which is used to return some value, so it does not need any declaration.It needs only return keyword with value or variables. |
Declaration for java.lang.System.exit() method:
public static void exit(int status)
|
4. |
Generally, return 0 is used to return exit code to the operating system. |
If we want to explicitly specify an exit code to the operating system, we have to use System.exit(). |
5. |
Using return 0 in C++ programs is considered a good practice. |
Using System.exit(0) is avoided in practice because we have our main() method with void return type. |
Last Updated :
01 Sep, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...