因此,我被分配了这个项目,该项目将于周五到期,除了我困在这一部分之外,我已经完成了大部分工作。我需要使用 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 更改为其他内容,但我不知道该怎么做
如果您可以发布整个代码,而不仅仅是一小段代码,将会更有帮助。这样,人们可以更准确地了解正在发生的事情。
话虽这么说...
看起来你的
userInput
变量是一个String
,但是你的puzzle2
方法的第二个参数需要一个
int
。 Java 不会自动知道您是否要将 String
转换为 int
- 您必须明确地告诉它。
由于这是一个分配的项目,我不会给你完整的答案 - 那将是作弊;)
但是,您需要了解两个关键概念:
puzzle2
定义有两个参数:String
和 int
,因此您必须传递 String
作为第一个参数,并传递 int
作为第二个参数。String
转换为 int
。