不知道如何用方法编写这个 if 语句

问题描述 投票:0回答:1

因此,我被分配了这个项目,该项目将于周五到期,除了我困在这一部分之外,我已经完成了大部分工作。我需要使用 if 语句检查前一个谜题是否已正确完成,有 3 个谜题,我一直在检查第二个谜题是否已完成。我不断得到

Main.java:53: error: incompatible types: String cannot be converted to int

第53行是userInput下面的if语句。

    if(i.puzzle2(name2,userInput)){
        Scanner puz3name = new Scanner(System.in);
        System.out.println("you have 3 chances to guess a number");
        int firstnum= puz3name.nextInt();
        System.out.println(i.puzzle2(name2,firstnum));

name2 已经在上面定义了

    public boolean puzzle1(String name, String userInput) {
        //examine the conditions for puzzle 1
        //if the user answers correctly the process continues
        System.out.println("checking...");
        if (name.substring(0,1).equals(userInput.substring(0,1))){
            return true;
    }
    return false;
}
    public boolean puzzle2(String name, int userInput) {
        //examine the conditions for puzzle 2
        //if the user answers correctly the process continues
        int lastdig = userInput%10;
        int sqrname = name.length()*name.length();
            if(sqrname%10==lastdig)
        return true;
        else return false;
    }

    public boolean puzzle3(String name, int userInput) {
        //examine the conditions for puzzle 3
        //if the user answers correctly the process continues
        if (userInput==(name.length()+ 10) / 3)
        return true;
        else if (userInput>(name.length()+ 10) / 3){
        System.out.println("Your guess is too high");
        return false;
        }
        else if (userInput<(name.length()+ 10 )/ 3){
        System.out.println("your guess is too low");
        return false;
        } 
        return false;
    }

这些是我使用的方法,我对java非常陌生,如果我遗漏了任何重要的东西或者我不善于解释我的问题,我很抱歉🤧

我尝试过弄乱 if 语句并将 userInput 更改为其他内容,但我不知道该怎么做

java if-statement methods
1个回答
0
投票

如果您可以发布整个代码,而不仅仅是一小段代码,将会更有帮助。这样,人们可以更准确地了解正在发生的事情。

话虽这么说...

看起来你的

userInput
变量是一个
String
,但是你的puzzle2方法的第二个
参数
需要一个
int
。 Java 不会自动知道您是否要将
String
转换为
int
- 您必须明确地告诉它。

由于这是一个分配的项目,我不会给你完整的答案 - 那将是作弊;)

但是,您需要了解两个关键概念:

  1. 调用方法时传递的arguments的类型必须与方法定义中指定的parameters的类型匹配。
    puzzle2
    定义有两个参数:
    String
    int
    ,因此您必须传递
    String
    作为第一个参数,并传递
    int
    作为第二个参数。
  2. 这篇文章解释了如何将
    String
    转换为
    int
© www.soinside.com 2019 - 2024. All rights reserved.