在 java 中使用 System.exit(0) 退出程序

Posted

技术标签:

【中文标题】在 java 中使用 System.exit(0) 退出程序【英文标题】:Exiting a program with System.exit(0) in java 【发布时间】:2013-10-18 23:46:32 【问题描述】:

我对如何实现 System.exit(0); 有点困惑。在我的程序中。我想要发生的是让用户输入“退出”这个词并让程序终止。我还希望程序在输入“clear”时返回“0.0”,但我认为我在处理变量时遇到了问题,因为 num1 和 num2 是双精度的,但我希望“exit”和“clear”是可接受的输入,也是。

如果有人有任何见解,将不胜感激。这是我的代码:

package projectapcs;

/**
 *
 * @author Apple
 */

import java.util.Scanner;

public class ProjectAPCS 

    public static void exit(int x)

    

    public static void clear(int y)

    

    public static void main(String[] args) 



    double num1;
    double num2;
    char char1;
    String operation;


    Scanner input = new Scanner(System.in);

    System.out.println 
    ("Enter 'exit' to quit the calculator, 'help' for more options or 'continue' to use the   calculator");


    System.out.println
    ("\nEnter the first number:");
    num1 = input.nextInt();



     System.out.println 
     ("Display:" +  num1);

     System.out.println("Please enter operation:");
    operation = input.next();



    System.out.println("Enter the second number:");
    num2 = input.nextInt();
    System.out.println ("Display:" + num2);





    if ("+".equals(operation))

        System.out.println((num1 + num2));
     
    else if ("-".equals(operation)) 

        System.out.println((num1 - num2));
    
    else if ("/".equals(operation)) 

        System.out.println((num1 / num2));
    
    else if ("*".equals(operation)) 

        System.out.println((num1 * num2));
    
    else if ("-x".equals(operation))

        System.out.println (-num1);
    
    else if ("x^2".equals(operation))

        System.out.println (num1 * num1);
    
    else if ("sqrt".equals(operation))

        System.out.println (Math.sqrt(num1));

    


    else if ("H".equals(num1))

       System.out.println("Type + for the addition of values");
       System.out.println("Type - for the substraction of values");
       System.out.println("Type * for the multiplcation of values");
       System.out.println("Type / for the division of values");
       System.out.println("Type negate for the negation of values");
       System.out.println("Type ^2 for squaring of values");
     

    else if("E".equals(num1))

       System.out.println ("Calculator program terminated...");
       System.exit(0);
    

  


【问题讨论】:

在java中,你只需写“return;”就可以退出 【参考方案1】:

如果您想允许任意输入,请将输入读取为字符串,然后根据需要convert to double

String input = scanner.next();
if (input.equals("exit")) 
    exit();
else if (input.equals("clear")) 
    clear();
 else 
    try 
        double number = Double.parseDouble(input);
        /* do something with `number` */
     catch (NumberFormatException e) 
        System.err.println("Not a double.");
    

【讨论】:

@MadProgrammer 如果你说它实际上有什么问题会更有帮助。我不再经常使用 Java..

以上是关于在 java 中使用 System.exit(0) 退出程序的主要内容,如果未能解决你的问题,请参考以下文章

System.exit(int status)

从JDK源码看System.exit

在 System.exit(0) 处解除绑定

使用 System.exit(0) [重复]

System.exit(0) 导致 Activity 在应用启动时快速退出

套接字发送的文件大小为 0 并且访问被阻止,除非我使用 System.exit(0),如何避免这种情况?