我在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);
}
}
}
答案 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);