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

标签 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;
}

最佳答案

第一次打印

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

关于使用开关的 Java 4 运算符计算器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324400/

相关文章:

java - Java Spring 和 Tomcat 并发文件下载速度慢

java - 无法在控制台输出中打印 SQL 语句

java - 在 Java 中实现通用 switch 语句

java - 自动标记如何在扫描仪中退出 hasNext

java - java中while循环外部调用的值

java - 从可能的多种类型中保存单个枚举值

java - Intellij 社区版中的 Azure 函数应用程序无法验证函数运行时 : Cannot run program "java": error=2, 没有这样的文件或目录

ruby - Ruby 中条件条件下的 bool 运算符 AND 和 OR 之间没有区别

java - 在正确的时间脱离 Switch

java - 循环输入用户输入