【问题标题】:cannot find symbol java calculation code [closed]找不到符号java计算代码[关闭]
【发布时间】:2018-09-28 19:42:46
【问题描述】:

我完全是java中的菜鸟。刚开始。有些人请帮我获取此代码。试图编写代码来执行计算,但它显示找不到符号。

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

【问题讨论】:

  • 找不到什么符号?你得到什么样的错误?在哪一行代码?
  • 请发布您的堆栈跟踪。 if (op == add) add 变量从何而来? submuldiv 相同。
  • 比较字符串不能使用op == add,你需要使用op.equals("add")

标签: java linux terminal symbols


【解决方案1】:

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

String add = "add";

那么对于String comparison,您需要使用equals 而不是==

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

还要避免多个if(也可以用print外面来避免duplicate code)求op等于什么,可以使用switch构造:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
       if (op == add)
      

      这个和其他的都是罪魁祸首。首先,字符串值必须在" 内。此外,== 不是一个很好的 String 相等性检查。

      if ("add".equals(op))
      

      会更好。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-02
        • 1970-01-01
        • 2020-06-16
        • 1970-01-01
        • 2016-05-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多