Gru*_*mme 2 java java.util.scanner
任何人都可以告诉我,当我打y/n时 - 为什么我的比赛没有停止,它只会再次开始.我isDone()在跑步之前调用我的方法,但它只是一遍又一遍地运行.
public class Model {
int numberToGuess = 29;
int counter;
boolean isDone;
Scanner sc = new Scanner(System.in);
public Model() {
isDone = false;
run();
}
public void run() {
welcomeMessage();
while (true) {
guessNumber();
}
}
public void welcomeMessage() {
System.out.println("Welcome to " + '\n' + "***** GUESS THE NUMBER *****");
}
public void guessNumber() {
System.out.println("Please enter number and hit 'Enter'" + '\n');
if (sc.hasNextInt()) {
int input = sc.nextInt();
counter++;
if (input < numberToGuess) {
System.out.println('\n' + "Your guess is too low!" + '\n');
} else if (input > numberToGuess) {
System.out.println('\n' + "Your guess is too high!" + '\n');
} else {
System.out.println("Congratulations, you guessed the number!" + '\n' + "You guessed the number in " + counter + " guess." + '\n');
isDone();
}
} else {
System.out.println("Invalid input, please enter a number!" + '\n');
sc.next();
}
}
public void isDone() {
System.out.println("Do you wanna play again? Enter y/n");
if (sc.hasNext()) {
String input = sc.next();
if ("y".equals(sc))
if (input.equals("y")) {
isDone = false;
guessNumber();
} else if (input.equals("n")) {
isDone = true;
}
}
System.out.println("Invalid input, please enter y/n to continue");
sc.next();
}
}
Run Code Online (Sandbox Code Playgroud)
你有一个无限循环:
while (true)
Run Code Online (Sandbox Code Playgroud)
没有条件终止该计划.
您可以使用全局isDone变量并替换为true:
while (!isDone)
{
guessNumber();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |