我正在尝试制作一个简单的计算器,并且当我尝试使其在用户未输入给定操作类型之一时显示“错误”时,不断在标题中出现错误。
import java.util.Scanner;
public class experiments {
public static void main(String args[]) {
Scanner userInput = new Scanner(System.in);
String operation;
double fNum, sNum, ans;
//select type of operation
System.out.println("Type addition, subtraction, multiplication, or division, then press enter");
operation = userInput.nextLine();
if (operation!=("addition","subtraction","multiplication","division")) {
System.out.println("error");
}
//enter numbers
System.out.println("Enter first number");
fNum = userInput.nextDouble();
System.out.println("Enter second number");
sNum = userInput.nextDouble();
//calculate
if (operation.equals("addition")) {
ans=fNum + sNum;
}
else if (operation.equals("subtraction")) {
ans=fNum - sNum;
}
else if (operation.equals("multiplication")){
ans=fNum * sNum;
}
else if (operation.equals("division")) {
ans=fNum/sNum;
}
//print answer
System.out.println("The answer is ");
System.out.println(ans);
}
}
最佳答案
你不能将事物与一组对象进行比较,如下所示:
operation!=("addition","subtraction","multiplication","division")
大概您想要的是“如果操作
不是这四件事之一”。你有几个选择。最像您现在所拥有的的是创建一个包含四个合法操作的新ArrayList
(例如legalOperations
),然后使用legalOperations.contains(operation)
.
但是,一种更简洁的方法(“更好的 Java”)是创建一个 enum
并用它来进行比较。
public enum LegalOperations {
ADDITION,
SUBTRACTION,
MULTIPLICATION,
DIVISION
}
然后您可以与枚举进行比较(例如,也许您可以为枚举提供一个构造函数,以允许它为每个枚举常量提供一个明确的字符串值,以及一个 isLegalOperation
方法)。
关于Java- token "!="上的语法错误,此 token 后应有名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334260/