Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java计算器错误的运算符提示_Java_Calculator - Fatal编程技术网

Java计算器错误的运算符提示

Java计算器错误的运算符提示,java,calculator,Java,Calculator,我有一个计算器类,我希望操作输入特定于这些字符串“+,-,/,*”,如果不是,我希望打印一条消息以再次输入运算符。 如果有人想减少我的代码,请做吧。谢谢 这是我的密码 import java.util.Scanner; 公共类计算器1{ public static void main(String[] args) { Scanner num = new Scanner(System.in); String operation; Double fnum, lnum

我有一个计算器类,我希望操作输入特定于这些字符串“+,-,/,*”,如果不是,我希望打印一条消息以再次输入运算符。 如果有人想减少我的代码,请做吧。谢谢

这是我的密码

import java.util.Scanner;
公共类计算器1{

public static void main(String[] args) {    
    Scanner num = new Scanner(System.in);
    String operation;
    Double fnum, lnum, answer;
    System.out.println("Enter first Number: ");
    while (!num.hasNextDouble())
    {
        num.next();
        System.out.print("Enter first Number: ");
    }
    fnum = num.nextDouble();
    System.out.println("Enter Operation: ");
    //HERE IM BEING CONFUSED
    while (!num.equals("+, -, /, *"))
    {
        num.next();
        System.out.print("Enter Operator: ");
    }
    operation = num.next();
    //End
    System.out.println("Enter Second Number: ");
    while (!num.hasNextDouble())
    {
        num.next();
        System.out.print("Enter Second Number: ");
    }
    lnum = num.nextDouble();




    switch (operation) {
    case "+":
        answer = fnum + lnum;
        System.out.print("Equals= " + answer);
        break;
    case "-":
        answer = fnum - lnum;
        System.out.print("Equals= " + answer);
        break;
    case "*":
        answer = fnum * lnum;
        System.out.println("Equals= " + answer);
        break;
    case "/":
        answer = fnum / lnum;
        System.out.println("Equals= " + answer);
        break;
    default:
        System.out.println("wrong operator");
        break;


    }
}

}这是一种将运算符与开关语句一起使用的方法

public static void main(String[] args) {

    Scanner num = new Scanner(System.in);
    double v1,v2;
    String v3;

    System.out.print("Enter first number: ");
    v1 = num.nextDouble();
    System.out.print("Enter second number: ");
    v2 = num.nextDouble();
    System.out.print("Enter operation [+]   [-]   [*]   [/]: ");
    v3 = num.next();

    System.out.println( ("+".equals(v3) ) ? Operators.ADD.calculate(v1, v2) : "....");

    }

public enum Operators {
    ADD;

    double calculate(double x, double y) {
        switch (this) {
            case ADD:
                return x + y;
            default:
                throw new AssertionError("Unknown operations " + this);
        }
    }

}

!num.equals(“+,-,/,*”)
您的问题是什么?调试并逐步完成代码时会发生什么?什么是错误?
num
是一个
扫描仪
。它永远不会等于
字符串。