首页 > 解决方案 > 游戏的Java循环

问题描述

我的代码有问题。出于某种原因,每次我运行代码时都会出现“ if (guess <1 || guess >10 ) System.out.println (“你的猜测需要在 1 到 10 之间”);” 陈述被视为猜测尝试。如果玩家的猜测超出 1-10 范围,则目标是不计算尝试次数。我已经尝试过休息;但我无法做到这一点?如果用户超出范围(不计为尝试),有谁知道如何打破循环并返回猜测?

谢谢

import java.security.SecureRandom;
import java.util.Scanner;

public class GuessTheNumber {
private Scanner input = new Scanner(System.in);
private SecureRandom randomNumbers = new SecureRandom();
private int numberOfGuesses;

public void play() {
    numberOfGuesses = 0;
    int magicNumber = 1 + randomNumbers.nextInt(10);

    int guess = askForGuess();



    while(guess != magicNumber){
    // Some kind of loop, maybe while
    numberOfGuesses++;
    // is theGuess equal to magicNumber or is it
    guess = input.nextInt();
    // too high or is it too low




    if (guess == magicNumber)
    System.out.println("Yes, the number is " + magicNumber);

  else if (guess > magicNumber)
    System.out.println("Your guess is too high");

  else if (guess < magicNumber)
    System.out.println("Your guess is too low");

          System.out.println  ("Number of times guessed: "
    + numberOfGuesses );
    // Display "correct in numberOfGuesses"



    }

  }


}

private int askForGuess( ) {

    int guess = 0;


     // prompt for a guess
    System.out.println("Enter a number:");

    if (guess <1 || guess >10 )
        System.out.println ("Your guess needs to be between 1 and 10");

  return guess;



      }

   }

标签: java

解决方案


您需要在“askForGuess()”方法中输入输入,增量也将在那里完成,如下所示

public class GuessTheNumber 
{
private Scanner input = new Scanner(System.in);
private SecureRandom randomNumbers = new SecureRandom();
private int numberOfGuesses;

public void play() {
    numberOfGuesses = 0;
    int magicNumber = 1 + randomNumbers.nextInt(10);

    int guess = 0;

    while(guess != magicNumber){
    // Some kind of loop, maybe while
    guess = askForGuess();
    // is theGuess equal to magicNumber or is it

    if (guess == magicNumber)
    System.out.println("Yes, the number is " + magicNumber);

  else if (guess > magicNumber)
    System.out.println("Your guess is too high");

  else if (guess < magicNumber)
    System.out.println("Your guess is too low");

          System.out.println  ("Number of times guessed: " + numberOfGuesses );
    }

  }

private int askForGuess( ) 
{
    int guess = 0;
     // prompt for a guess
    System.out.println("Enter a number:");

    guess = input.nextInt();

    if (guess <1 || guess >10 )
        System.out.println ("Your guess needs to be between 1 and 10");
    else
        numberOfGuesses++;

  return guess;
}

}

推荐阅读