Java /使用多种方法创建高/低游戏,坚持返回否。猜测

时间:2016-04-09 20:28:37

标签: java

我正在创建一个高/低猜谜游戏作为学习任务的一部分,我坚持的部分是获得返回主方法的猜测量。我们特别被告知主要方法必须打印猜测次数,而“playGame”方法实际上是在播放。

还有更多的代码,一个名为giveReponse的方法,用于检查数字是正确还是太高/低,但它按预期工作。在尝试打印完成游戏所花费的猜测时,我得到“找不到符号”。 如果在main方法中打印它并不是那么重要,我会在方法playGame中打印数量,但这是不行的。我究竟做错了什么? 代码如下所示:

background-image: url(https://s3-eu-west-1.amazonaws.com/spathtoimages/whiteshareicont.svg);

2 个答案:

答案 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.");
      }