我的代码出了点问题。由于某种原因,每次我运行代码时,“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;
}
}
发布于 2018-10-09 01:08:12
您需要在"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;
}
}
https://stackoverflow.com/questions/52706868
复制相似问题