我正在创建一个高/低猜谜游戏作为学习任务的一部分,我坚持的部分是获得返回主方法的猜测量。我们特别被告知主要方法必须打印猜测次数,而“playGame”方法实际上是在播放。
还有更多的代码,一个名为giveReponse的方法,用于检查数字是正确还是太高/低,但它按预期工作。在尝试打印完成游戏所花费的猜测时,我得到“找不到符号”。 如果在main方法中打印它并不是那么重要,我会在方法playGame中打印数量,但这是不行的。我究竟做错了什么? 代码如下所示:
background-image: url(https://s3-eu-west-1.amazonaws.com/spathtoimages/whiteshareicont.svg);
答案 0 :(得分:2)
您的方法playGame( )
正在返回一个值,但由于未分配给任何变量,这些返回正在丢失...
除此之外,看起来代码还不完整:
这句话不会让你编译:
System.out.println("You won in" + guesses + "attempts.");
因为我在其中看到的唯一guesses
变量是在playGame方法中的作用域 ....
取而代之的是:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Welcome to classic guessing game of high/low!");
int guesses = 0;
String difficulty = scan.next();
if (difficulty.equals("easy")) {
guesses = playGame(10);
} else if (difficulty.equals("medium")) {
guesses = playGame(100);
} else if (difficulty.equals("hard")) {
guesses = playGame(1000);
}
答案 1 :(得分:0)
问题在于:
System.out.println("You won in" + guesses + "attempts.");
由于变量guesses
未在main方法中定义,因此编译器不知道您使用该符号引用的内容。
但由于playGame()
会返回猜测次数,我建议这样:
if (difficulty.equals("easy")) {
System.out.println("You won in" +playGame(10)+ "attempts.");
} else if (difficulty.equals("medium")) {
System.out.println("You won in" +playGame(100)+ "attempts.");
} else if (difficulty.equals("hard")) {
System.out.println("You won in" +playGame(1000)+ "attempts.");
}