Java 4运算符计算器使用开关不工作

时间:2015-10-24 23:20:36

标签: java switch-statement java.util.scanner

当我运行它时,没有任何反应。对我来说很奇怪的是系统输出如何询问你想要做什么也不起作用。顺便提一下,扫描仪就是先前调用的。如果我做了一些完全错误的事情,请告诉我:)任何帮助都将是巨大的。

Scanner scanner3 = new Scanner(System.in);
String operator = scanner3.nextLine();

System.out.println("What do you want to do? (add, subtract, multiply, or divide?)");

switch (operator){

case "add": System.out.println("Enter number one ");
    Scanner scanner4 = new Scanner(System.in);
    double addnum1 = scanner4.nextDouble();
    System.out.println("Enter number two ");
    Scanner scanner5 = new Scanner(System.in);
    double addnum2 = scanner5.nextDouble();
    System.out.print("the answer is: ");
    System.out.println( addnum1 + addnum2);
    break;

case "subtract": System.out.println("Enter number one");
    Scanner scanner7 = new Scanner(System.in);
    double subnum1 = scanner7.nextDouble();
    System.out.println("Enter number two ");
    Scanner scanner8 = new Scanner(System.in);
    double subnum2 = scanner8.nextDouble();
    System.out.print("the answer is: ");
    System.out.println( subnum1 - subnum2 );
    break;

case "multiply": System.out.println("Enter number one");
    Scanner scanner9 = new Scanner(System.in);
    double mulnum1 = scanner9.nextDouble();
    System.out.println("Enter number two ");
    Scanner scanner10 = new Scanner(System.in);
    double mulnum2 = scanner10.nextDouble();
    System.out.print("the answer is: ");
    System.out.println( mulnum1 * mulnum2 );
    break;
case "divide": System.out.println("Enter number one");
    Scanner scanner11 = new Scanner(System.in);
    double divnum1 = scanner11.nextDouble();
    System.out.println("Enter number two ");
    Scanner scanner12 = new Scanner(System.in);
    double divnum2 = scanner12.nextDouble();
    System.out.print("the answer is: ");
    System.out.println( divnum1 / divnum2 );
    break;
}

1 个答案:

答案 0 :(得分:0)

第一次印刷

System.out.println("What do you want to do? (add, subtract, multiply or divide?)");

是在

之后
.nextLine()

所以你的程序在打印第一条消息之前需要输入。

你可以在所有情况下使用相同的扫描仪,更好更清洁的代码。

Scanner scanner_all = new Scanner(System.in);
System.out.println("What do you want to do? (add, subtract, multiply or divide?)");
String operator = scanner_all.nextLine();

switch (operator){

case "add": 
    System.out.println("Enter number one ");
    double addnum1 = scanner_all.nextDouble();
    System.out.println("Enter number two ");
    double addnum2 = scanner_all.nextDouble();
    System.out.print("the answer is: ");
    System.out.println( addnum1 + addnum2);
    break;

case "subtract": 
    System.out.println("Enter number one");
    double subnum1 = scanner_all.nextDouble();
    System.out.println("Enter number two ");
    double subnum2 = scanner_all.nextDouble();
    System.out.print("the answer is: ");
    System.out.println( subnum1 - subnum2 );
    break;

case "multiply": 
    System.out.println("Enter number one");
    double mulnum1 = scanner_all.nextDouble();
    System.out.println("Enter number two ");
    double mulnum2 = scanner_all.nextDouble();
    System.out.print("the answer is: ");
    System.out.println( mulnum1 * mulnum2 );
    break;
case "divide": 
    System.out.println("Enter number one");
    double divnum1 = scanner_all.nextDouble();
    System.out.println("Enter number two ");
    double divnum2 = scanner_all.nextDouble();
    System.out.print("the answer is: ");
    System.out.println( divnum1 / divnum2 );
    break;
}