Jes*_*a Z 1 java string compiler-errors switch-statement java.util.scanner
我不断收到以下错误:
//change the package name to calculatorClass///////////////
import java.util.Scanner;
public class assignmentB {
public static String String(int y,int x, String name, String str) throws Exception {
if (y < 1)
throw new Exception("Value must be larger than 0.");
if (x < 1)
throw new Exception("Value must be larger than 0");
return name;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Calculator c1 = new Calculator();
Scanner input = new Scanner(System.in);
c1.name = "The total is $";
try {
} catch (Exception e1){
System.out.println(e1);
}
{
int x, y, s, a, m;
String name1;
System.out.println("Red River College");
System.out.println("Custom Calculator");
System.out.println("Enter first value: ");
x = input.nextInt();
System.out.println("Enter second value: ");
y = input.nextInt();
System.out.println("Enter operation(a=Add, s=Subtract, m=multiply): ");
String operator = input.nextLine();
int op =Integer.valueOf(operator);
switch (op) {
case 1:
if (input == "s") {
System.out.println(c1.name + c1.subtract(x,y));
}
case 2:
if (input == "a") {
System.out.println(c1.name + c1.add(x,y));
}
case 3:
if (input == "m") {
System.out.println(c1.name + c1.multiply(x,y));
}
}
}
}
}
```
Run Code Online (Sandbox Code Playgroud)
您已使用以下行定义input为 a :Scanner
Scanner input = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)
然后您可以用来input执行扫描仪操作,就像您在这里所做的那样:
x = input.nextInt();
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。
但稍后在代码中,您将执行此操作(以及一些类似的变体):
if (input == "s") {
...
}
Run Code Online (Sandbox Code Playgroud)
这是无效的。Java 编译器告诉您,它不允许您使用==a Scanner(即input)与 String(在本例中为“s”)进行比较。编译器给你一个错误:input == "s"不允许。
目前尚不清楚您的意图是什么(即您希望代码实际表现如何),但问题肯定出在这三个if语句上。每个人都试图将 ajava.util.Scanner与 a进行比较java.lang.String(一个是“s”,一个是“a”,最后一个是“m”)。因此,您需要修复这些问题才能完成您想要做的任何事情。
作为猜测,也许您想从扫描仪读取新的字符串输入,然后将其与“s”等进行比较?如果是这样,情况可能如下所示。请注意,要比较字符串,您应该使用equals()(不要用于==比较字符串或任何其他对象)。
String newString = input.next();
switch (op) {
case 1:
if (newString.equals("s")) {
System.out.println(c1.name + c1.subtract(x, y));
}
...
}
Run Code Online (Sandbox Code Playgroud)