Java System.exit(0) 和C++ return 0 对比
Java和C++是具有不同应用和设计目标的语言。C++是过程性编程语言C的扩展,而Java则依靠Java虚拟机来实现安全和高度可移植性。这导致它们有许多不同之处。在这篇文章中,我们将看到C++ return 0
和Java System.exit(0)
之间的区别。在讨论这些差异之前,让我们先了解它们各自的实际含义。
C++ return 0
在标准C++中,建议创建一个有返回类型的 main()
函数。
所以, main()
函数必须返回一个整数值,这个整数值通常是将被传回给操作系统的值。
在 stdlib.h
中,宏 EXIT_SUCCESS
和 EXIT_FAILURE
是这样定义的 –
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
return 0
— 成功终止。return 1
或任何其他非零值 -> 不成功的终止。
返回不同的值,如return 1
或return -1
或任何其他非零值,意味着程序正在返回错误。
#include <iostream>
using namespace std;
int main()
{
int num1, num2;
cin >> num1 >> num2;
cout << num1 + num2;
return 0;
}
Java System.exit(0)
首先要考虑的是,java中的 main
函数的返回类型是 void
。
- 在Java中,不能返回退出代码,因为它是一个无效函数。如果想明确地指定一个退出代码,必须使用
System.exit()
方法。 java.lang.System.exit()
方法通过终止运行的Java虚拟机退出当前程序。
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 YiibaiDemo {
public static void main (String[] args) {
System.out.println("GeeksForGeeks");
}
}
注意:
return 0
和System.exit(0)
的作用都是和main()
函数的返回类型不同。
下表描述了这些区别 –
SR.NO | C++ return 0 | Java System.exit(0) |
---|---|---|
1 | C++中的 main() 函数有一个返回类型。因此,C++中的每个 main 方法都应该返回任何值。 |
java中的 main() 方法的返回类型是void,main方法不应该返回任何值。 |
2 | 在C++程序中, return 0 语句是可选的:编译器会自动在程序中隐含地添加一个 return 0 。 |
在Java中,没有特别要求调用 System.exit(0) 或明确添加它。 |
3 | 它是一个用来返回某些值的关键字,所以它不需要任何声明。它只需要 return 关键字与值或变量。 |
java.lang.System.exit() 方法的声明: public static void exit(int status) |
4 | 一般来说, return 0 被用来向操作系统返回退出代码。 |
如果想明确地指定一个退出代码给操作系统,必须使用 System.exit() 。 |
5 | 在C++程序中使用 return 0 被认为是一种好的做法。 |
在实践中,使用 System.exit(0) 是可以避免的,因为 main() 方法有 void 返回类型。 |