首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >猜猜我的数字练习5-7思考Java

猜猜我的数字练习5-7思考Java
EN

Stack Overflow用户
提问于 2016-11-30 21:20:20
回答 3查看 1.3K关注 0票数 0

我正在用“思考Java :如何像计算机科学家一样思考”这本书学习Java。而且书中没有练习答案,通常我会在不同的网站上找到类似的练习,但不是这个,因为我有准确的说明。你能告诉我它是否正确吗?我认为问题已经解决了,工作已经完成了,但是有没有更简单的方法呢?非常感谢

练习5-7。现在我们有了条件语句,我们可以回到练习3-4中的“猜猜我的数字”游戏。您应该已经有了一个程序,它可以选择一个随机数,提示用户猜测它,并显示猜测和选择的数字之间的差异。一次添加少量代码,并在执行过程中进行测试,修改程序,使其告诉用户猜测是过高还是过低,然后提示用户进行另一次猜测。程序应该继续运行,直到用户得到正确的结果。提示:使用两种方法,并使其中一种是递归的。

代码语言:javascript
运行
复制
import java.util.Random;
import java.util.Scanner;
public class GuessStarter {

  public static void Lower(int number,int number2) {
    Scanner in = new Scanner(System.in);
    System.out.print("Too Low , try again  ");
    number2 = in.nextInt();
    if (number2==number) {
      System.out.println("You're right");}
    else if (number2>number) 
      Higher(number,number2);
    else 
      Lower(number,number2); }

  public static void Higher(int number,int number2) {
    Scanner in = new Scanner(System.in);
    System.out.print("Too high , try again  ");
     number2 = in.nextInt();
    if (number2==number) {
      System.out.println("You're right");}
    else if (number2>number) 
      Higher(number,number2);
    else 
      Lower(number,number2); }



  public static void main(String[] args) {
      Scanner in = new Scanner(System.in);
      Random random = new Random();
      int number = random.nextInt(100) + 1;
      int number2;
      System.out.print("Type a number:  ");
      number2 = in.nextInt();
    if (number2==number) {
      System.out.println("You're right");}
    else if (number2>number) 
      Higher(number,number2);
    else 
      Lower(number,number2);}
}
EN

回答 3

Stack Overflow用户

发布于 2017-06-27 23:55:55

不知道它现在是否有用,但是,因为我正在解决相同的解决方案,所以我想让它知道如果有人发现它有用:

代码语言:javascript
运行
复制
import java.util.Random;
import java.util.Scanner;

/**
 * Created by RajU on 27-Jun-17.
 */
public class GuessNumber2 {

    static Scanner input = new Scanner(System.in);

    public static void main(String[] args) {

        message("I'm thinking of a number between 1 and 10 (including both).\n" +
                "Can you guess what it is?\n" +
                "Type a number: ");
        int userNumber = input.nextInt();

        tryAgain(userNumber, calculateRandom(10));

    }

    public static int calculateRandom(int n) {
        Random random = new Random();
        return random.nextInt(n) + 1;
    }

    public static void tryAgain(int userNumber, int generateRandom) {

        if (userNumber == generateRandom) {
            message("You're absolutely right!");
        } else {
            if (userNumber > generateRandom) {
                message("Think of a lesser number: ");
            } else {
                message("Think of a greater number: ");
            }
            userNumber = input.nextInt();
            tryAgain(userNumber, generateRandom);
        }

    }

    public static void message(String m) {
        System.out.print(m);
    }

}
票数 0
EN

Stack Overflow用户

发布于 2018-04-27 23:03:32

我刚刚完成了这个练习。看到一些不同的方法是非常有趣的!以下是我对此的看法:

代码语言:javascript
运行
复制
    import java.util.Random;
    import java.util.Scanner;

public class GuessGameLevelUp {
/*
 * A guessing game where you try to guess a random number between and including 1 and 100.
 * This version allows you to continue guessing until you get the right answer.
 * When you're off, a hint will let yet know whether your most recent guess was too high or low.
 */
public static void main (String [] args) {

    //Generates a random number for the game
    Random random = new Random();
    int answer = random.nextInt(100) +1;

    //Introduces the game and gives a prompt
    System.out.println("I'm thinking of a number between and including "
            + "1 and 100, can you guess which?");
    System.out.print("Take a guess: ");

    //Enables guess value input and parrots guess
    Scanner in = new Scanner(System.in);
    int guess;
    guess = in.nextInt();   
    System.out.println("Your guess is: "+guess);

    //Stacks a new class to determine the outcome of the game
    tooHighTooLow(answer, guess);

}

public static void tooHighTooLow(int a, int g) {

    //Triggers and parrots guess if correct
    if (a==g) {
    System.out.print("Correct! The number I was thinking of was: "+g);
    //Triggers "Too Low" prompt and uses recursive to offer another attempt
    } else if (a>g) {
        System.out.print("Too Low! Try again: ");
        Scanner in = new Scanner(System.in);
        g = in.nextInt();   
        System.out.println("Your guess is: "+g); //Parrots guess
        tooHighTooLow(a, g);
    //Triggers "Too High" prompt and uses recursive to offer another attempt
    }else
            System.out.print("Too high! Try again: ");
            Scanner in = new Scanner(System.in);
            g = in.nextInt();   
            System.out.println("Your guess is: "+g); //Parrots guess
            tooHighTooLow(a, g);

    }   
}
票数 0
EN

Stack Overflow用户

发布于 2017-01-17 05:08:14

我在这个问题上也遇到了困难,但你的代码帮助我找到了解决方案。这是我想出来的:

代码语言:javascript
运行
复制
import java.util.Random;
import java.util.Scanner;

public class Ch5Ex7 {

  public static void compareNumbers(int userNumber,int randomNumber) {
    if(userNumber == randomNumber) {
        System.out.println("You got it!");
    } else if ( userNumber > randomNumber ) {
        System.out.println("Too high. Guess again: ");
        Scanner in = new Scanner(System.in);
        userNumber = in.nextInt();
        compareNumbers(userNumber, randomNumber);
    } else {
        System.out.print("Too low. Guess again: ");
        Scanner in = new Scanner(System.in);
        userNumber = in.nextInt();
        compareNumbers(userNumber,randomNumber); 
    }
}

  public static void main(String[] args) {
      Scanner in = new Scanner(System.in);
      Random random = new Random();
      int randomNumber = random.nextInt(100) + 1;
      int userNumber;
      System.out.print("Type a number: ");
      userNumber = in.nextInt();

      compareNumbers(userNumber, randomNumber);
  }
}

谢谢你给我指明了正确的方向!

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40889496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档