当前位置: 首页 > 知识库问答 >
问题:

找到不兼容的类型:java.lang.String

曾洲
2023-03-14

我正在学习java,我写了这个程序,它在我的大学电脑上编译成功,但在我的家庭电脑上没有编译。有谁能帮助我吗?

import java.util.Scanner;

public class Calculator{

    public static void main(String[] args){
    
        Scanner input = new Scanner(System.in);
        
        System.out.println("Please Enter 2 Values");
        
        int userInput1 = input.nextInt();
        int userInput2 = input.nextInt();
        
        System.out.println("Please Enter an Operation");
        
        String operator = input.next();
        if(operator == null){
            return;
        }
        
        int answer = 0;
        
        switch (operator){
            case "+":
                answer = Add(userInput1,userInput2);    
            break;
            case "*":
                answer = Multiply(userInput1,userInput2);       
            break;          
            case "-":
                answer = Subtract(userInput1,userInput2);       
            break;          
            case "/":
                answer = Divide(userInput1,userInput2);     
            break;          
            default:
                System.out.println("Invalid Operator");
                System.exit(0);
            break;
        }
        
    
        System.out.println("The answer is " + answer);
        
    }

    public static int Add(int num1, int num2)
    {
        return num1 + num2;
    }
    
    
    public static int Subtract(int num1, int num2)
    {
        return num1 - num2;
    }

    public static int Multiply(int num1, int num2)
    {   
        return num1 * num2;
    }

    
    public static int Divide(int num1, int num2)
    {   
        return num1 / num2;
    }
    
    
    
    
}
           switch (operator){

                   ^

共有1个答案

孟和玉
2023-03-14

Java7中引入了在字符串上使用开关。确保您在另一台机器上使用JDK7+来编译程序

如注释中所述,如果由于某种原因无法升级JDK,则可以使用char:

String operator = input.next();
if(operator == null || operator.isEmpty()) {
   return;
}
int answer = 0;
switch (operator.charAt(0)) {
    case '+':
        answer = Add(userInput1, userInput2);
        break;
    case '*':
        answer = Multiply(userInput1, userInput2);
        break;
    ...
 类似资料:
  • 有一个红色下划线,下划线为消息:。 和BesCreateHelper java

  • 我定义jackoson序列化器并将其添加到java类中,如下所示: 编译器出现以下错误: 注释的定义为: 如果我从ReportFilterDeserializer中删除泛型attibute,它将通过编译。我不明白编辑为什么抱怨。

  • 我按照这个教程:https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer 现在我在这一点上: 我的问题是这条线... 显示一个错误:不兼容的类型。需要android。应用程序。FragmentManager发现:android。支持v4.app。碎片管理器。 我看到了一些帖子,但它们不适合我。 我用AppC

  • 我正在使用JPA,列类型为: 我使用PostgreSql作为我的数据库,它支持bpchar类型,现在我尝试为我的测试添加H2,但问题是,当我运行测试时,我得到以下结果: 是否有其他方法可以实现这一目标?

  • 我正在尝试使用reverfit和RxJava在我正在使用的应用程序中的自定义视图中进行API调用,但是当我尝试订阅来自我的reverfit API调用的Observable时,遇到了一个不兼容类型错误。 我的改装界面: } 和位于自定义视图的onFinishInflate()中的改装调用: 当我构建项目时,在自定义视图中以可观察的 query=...开头的行中遇到了不兼容类型错误: 错误:(60,