找不到符号java计算代码

时间:2018-04-18 14:05:43

标签: java linux terminal symbols

我在java中完全是noob。刚开始。一些请帮我拿到这段代码。试图编写代码来执行计算,但它显示无法找到符号。

import java.util.Scanner;

public class Cal {
    public static void main(String args[]) {
        int a, b, r;
        String op;
        System.out.print("Choose one : add, sub, mul, div ");
        Scanner input = new Scanner(System.in);
        op = input.nextLine();
        System.out.print("Enter the value : ");
        Scanner val = new Scanner(System.in);
        a = val.nextInt();
        b = val.nextInt();
        if (op == add) {
            r = a + b;
            System.out.println(r);
        } else if (op == sub) {
            r = a - b;
            System.out.println(r);
        } else if (op == mul) {
            r = a * b;
            System.out.println(r);
        } else if (op == div) {
            r = a / b;
            System.out.println(r);
        }
    }
}

3 个答案:

答案 0 :(得分:4)

 if (op == add)

这和其他人是罪魁祸首。首先,String值必须在"内。另外,==不是String的良好等式检查。

if ("add".equals(op))

会更好。

当然,其他条件也是如此。

答案 1 :(得分:0)

你没有符号add,sub ...而是与字符串“add”,“sub”...

进行比较

答案 2 :(得分:0)

Cannot resolve symbol上有一个add, sub, mul, div,因为这样写的必须是变量,而且它们不是,你需要例如

String add = "add";

然后对于String comparison,您需要使用equals代替==

if("add".equals(op)){...}

另外,为了避免多个if(也使用外部打印以避免duplicate code)找到op等于的内容,您可以使用开关构造:

switch (op) {
        case "add":
            r = a + b;
            break;
        case "sub":
            r = a - b;
            break;
        case "mul":
            r = a * b;
            break;
        case "div":
            r = a / b;
            break;
}
System.out.println(r);