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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19308938/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 15:56:07  来源:igfitidea点击:

Exiting a program with System.exit(0) in java

javacalculatorexitclearsystem.exit

提问by Charlie Tidmarsh

I am a little confused about how to implement System.exit(0); in my program. What I want to have happen is for the user to type the word "exit" and for the program to terminate. I would also like the program to return "0.0" when "clear" is entered, but I think I am having trouble working with my variables because num1 and num2 are doubles but I want "exit" and "clear" to be acceptable inputs, as well.

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

If anyone has any insight, that would be greatly appreciated. Here is my code:

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

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);
    }

  }

}

回答by Brendan Long

If you want to allow arbitrary inputs, read input as a String, then convert to doubleas needed:

如果要允许任意输入,请将输入读取为字符串,然后根据需要转换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.");
    }
}