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_SUCCESSEXIT_FAILURE是这样定义的 –

#define EXIT_SUCCESS    0
#define EXIT_FAILURE    1
  • return 0 — 成功终止。
  • return 1或任何其他非零值 -> 不成功的终止。
    返回不同的值,如return 1return -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 0System.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返回类型。