代码之家  ›  专栏  ›  技术社区  ›  ViceroyFaust

我做了一个CLI计算器,我想知道,在用户输入stop命令之前,我怎么能让程序不精确地接受数字?

  •  0
  • ViceroyFaust  · 技术社区  · 8 年前

    import java.util.Scanner;
    
    public class Calculator {
    
        public static void calcMenu(Scanner input){
            Scanner oper = new Scanner(System.in);
            System.out.println("Please input the First number:");
            double anum = input.nextDouble();
    
            System.out.println("Please input on of the following operations:");
            System.out.println("+");
            System.out.println("-");
            System.out.println("*");
            System.out.println("/");
            String equ = oper.nextLine();
    
            System.out.println("Please input the Second number:");
            double bnum = input.nextDouble();
    
            switch (equ){
            case "+":
                System.out.println(anum + bnum);
                break;
    
            case "-":
                System.out.println(anum - bnum);
                break;
    
            case "*":
                System.out.println(anum * bnum);
                break;
    
            case "/":
                System.out.println(anum / bnum);
                break;
            }
        }
    }
    

    在这个Java类中,程序只能用两个数字求解方程。我想把它变成一个标准的计算器,在那里你可以输入你想要的数字。我想这样做,直到用户键入类似“完成”的内容,应用程序将返回主菜单。 这可能是一个很难回答的问题,但请帮忙。如果你想看到整个应用程序:下面是 link

    1 回复  |  直到 8 年前
        1
  •  1
  •   Yasin    8 年前

    这会帮你的!:)

    import java.util.InputMismatchException;
    import java.util.Scanner;
    
    public class Calculator {
    
    private static double answer;
    private static boolean done = false;
    private static Scanner in = new Scanner(System.in);
    
       public static void main(String[] args) {
    
           try {
               new Calculator().calcExpression();
           } catch (InputMismatchException e) {
               System.out.println("An error occurred. ");
           }
       }
    
       private void calcExpression() throws InputMismatchException {
    
           System.out.println("Enter Your Expression Here:");
    
           System.out.print("Num: ");
           double firstNum = in.nextDouble();
           in.nextLine();
    
           while (!done) {
    
               System.out.print("Operator: ");
               String operand = in.nextLine();
    
               if (operand.equals("=")) {
                   break;
               }
    
               System.out.print("Num: ");
               double secondNum = in.nextDouble();
               in.nextLine();
    
               calculate(firstNum, operand, secondNum);
               firstNum = answer;
           }
    
           System.out.printf("Answer is %.2f", answer);
       }
    
       private void calculate(double num1, String equ, double num2) {
    
           switch (equ)
    
           {
               case "/":
                   answer = (num1 / num2);
                   break;
    
               case "*":
                   answer = (num1 * num2);
                   break;
    
               case "+":
                   answer = (num1 + num2);
                   break;
    
               case "-":
                   answer = (num1 - num2);
                   break;
    
               case "=":
                   done = true;
                   break;
           }
       }
    }
    
    推荐文章