嗨,我正在尝试使用Math.random生成一个介于0到100之间的随机数,然后要求用户输入一个介于0到100之间的数字或退出-1。如果该数字超出范围(而不是-1),请要求用户输入一个新数字。如果用户没有正确猜出该数字,请告诉用户该随机数是高于还是低于猜出的数字。让用户猜测,直到他们输入正确的数字或输入-1。如果他们猜到正确的数字,请告诉用户尝试了多少次,然后重新开始游戏。它将继续播放,直到用户退出为止。
我在如何只让用户输入0-100以及如何通过输入-1退出循环方面陷入困境
这是我到目前为止所拥有的,任何帮助将不胜感激!
import java.util.Scanner; public class QuestionOne { public static void main(String args[]) { Scanner keyboard = new Scanner(System.in); int a = 1 + (int) (Math.random() * 99); int guess; System.out.println("Guess a number between 0-100"); while(guess != a){ guess = keyboard.nextInt(); if (guess > a) { System.out.println("The number is lower!"); } else if (guess < a) { System.out.println("higher!"); } else { System.out.println("Congratulations.You guessed the number with" + count + "tries!"); } } } }
首先,您对keyboard.nextInt()的调用(及其对应的println为“猜测0-100之间的数字”)应该在while循环内。
然后,您应该考虑将while循环更改为
while (true) { // read input from user if (guess < value) { // tell user their guess is too low } else if (guess > value) { // tell user their guess is too high } else { // tell user congrats, and call break to exit the while loop } } }
一旦做对了,就可以进行精妙的处理,例如检查猜中的数字是否在范围之内,跟踪他们进行了多少次猜测等。