java - 在简单计算器中验证数学运算符

原文 标签 java

我需要帮助来验证计算器程序中的运算符,要求用户输入两个数字和一个运算符,即3 + 2,但是我无法验证该运算符。如果用户输入+,-,*或/运算符,则会告诉我此输入在应有的情况下是无效的。验证第一个数字很好,那里没有问题。有人可以帮忙吗?

import java.util.Scanner;
public class SimpleCalculator {

    public static void main(String[] args) {
        int int1;
        String operator;
        int int2;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter first number: ");

        while(!scan.hasNextInt()){
            scan.next();
            System.err.print("Invalid input please enter a number: ");
        }

        int1 = scan.nextInt();

        System.out.println("Enter operator (+, -, *, /): ");

        while(!scan.equals("+") && !scan.equals("-") && !scan.equals("*") && !scan.equals("/")){
                scan.next();
            System.err.print("Invalid input please enter a valid operator (+, -, *, /");
        }

        operator = scan.next();

        System.out.println("Enter second number: ");


        scan.close();
    }

}

最佳答案

您需要检查scan.next()的输出,而不是scan的输出

    System.out.println("Enter operator (+, -, *, /): ");
    operator = scan.next();
    while(!operator.equals("+") && !operator.equals("-") && !operator.equals("*") && !operator.equals("/")) {
        System.err.println("Invalid input please enter a valid operator (+, -, *, /");
        operator = scan.next();
    }

相关文章:

java - 尝试使用Wildfly 10部署项目时出现多个错误

java - 从两台(或更多台)不同的计算机访问单个文件有问题吗?

java - 无法将本地Maven存储库中的项目添加为依赖项

java - jackson (Jackson):有2种不同的类(class)代表

java - JPA命名查询与条件API?

java - c3p0导致应用程序超时的间隔很少

java - 特殊字符被tomcat cookie解析器拒绝

java - GridBagLayout为列提供了额外的余量

java - 使用HttpURLConnection将Json数据发布到REST API服务器

java - .setValue和.addValueListener上的错误