2013-10-11 52 views
0

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

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

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

    } 

} 
+1

在你刚写的java退出“返回”; – libik

回答

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."); 
    } 
} 
+0

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

+0

这样可以帮助你学习:P – MadProgrammer

相关问题