java - 游戏的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;
}
}
解决方案
您需要在“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;
}
}
推荐阅读
- sql - SQL JOIN 到两个单独的子表而不交叉它们
- javascript - 我需要使用 HTML、CSS 和 Javascript 制作一个按钮,以便在单击按钮时将字体颜色从红色变为红色
- javascript - 如何在 PL/SQL 中放置一个元素
- c# - 某些符号之间的特定单词不匹配
- arrays - BigQuery - 数组元素作为行
- sql - 有没有更简单的方法来为 SQL 格式化这些数据
- spring - 使用自定义 FieldSet Mapper 时的 Spring 批处理页脚
- javascript - 从给定的域字符串中提取主机名并删除扩展名和 www
- python - 无法将 json 文件转换为所需的 pandas 数据框
- python - 添加颜色时,情节时间线的条消失