java - Java - 需要我的循环不仅在三个猜测后结束,而且还显示正确的数字
问题描述
我试图让我的循环只发生三次。因此,如果用户在第三次猜测后没有猜出正确的数字,那么循环结束,我有,但它不显示数字是什么。我需要第三次猜测后显示的数字,但不确定为什么它没有显示正确的数字。
import java.util.Scanner;
public class GuessNumberDoWhileA {
public static void main(String[] args) {
//Generate random number from 1-10
int number = (int) (Math.random()*9 + 1);
int count = 0;
//Auto Generated Method stub
Scanner Input = new Scanner(System.in);
//Tell the user to guess a number
System.out.println("Guess a number between 1 and 10");
//int guess = -1;
//while (guess != number) {
while (count < 3) {
count++;
System.out.print("\nEnter your guess: ");
int guess = Input.nextInt();
if (guess == number)
System.out.println("Correct the number was " + number);
else if (guess > number)
System.out.println("Your guess is to high try again!");
else if (guess < number)
System.out.println("Your guess is to low try again!");
else
System.out.println("The correct number is " + number);
}
System.out.println("The number was " + number);
}
}
解决方案
您需要一个boolean
可用于检查用户是否能够正确猜出数字的变量。这个布尔变量的初始值应该是false
。
您不需要else
循环中的最后一条语句。如果用户猜对了数字,则将boolean
变量设置为true
并跳出循环。在循环之后,检查boolean
变量是否false
存在。如果是false
,则表示用户无法猜到数字,因此向用户显示正确的数字。
如果用户能够猜到数字,那么if
循环中的第一条语句将在控制台上打印正确的数字并跳出循环。它还将布尔变量设置为true
,因此正确的数字只会在控制台上打印一次。
boolean guessed = false;
while (count < 3) {
count++;
System.out.print("\nEnter your guess: ");
int guess = Input.nextInt();
if (guess == number) {
System.out.println("Correct the number was " + number);
guessed = true;
break;
}
else if (guess > number)
System.out.println("Your guess is to high try again!");
else if (guess < number)
System.out.println("Your guess is to low try again!");
}
if (!guessed) System.out.println("Number was: " + number);
推荐阅读
- gremlin - 如何在 Gremlin 中找到至少有一个单向链接的顶点?
- python - Python - 为日期范围生成 url - 如果年份低于 2019,则输出 0 结果
- c# - redis 获取多个键的值,该值是在单个查询中设置的哈希值?
- django - 如何在 DJango 中使用 Prepend_WWW
- jenkins - 如何获取 Jira 数据并在 Jenkins 中显示
- reactjs - NPM 包共享
- google-drive-api - 将文件修订复制到新文件 Google Drive API v3
- r - S3中的美元建议方法
- javascript - Microsoft.Maps.SDKMap 未定义,在 BingMaps V8 中创建对象时
- django - Django - 将大写的网址重定向到小写