gpt4 book ai didi

java - 为什么我的程序没有停止?

转载 作者:行者123 更新时间:2023-12-01 06:14:52 27 4
gpt4 key购买 nike

谁能告诉我,当我点击 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();
}
}

最佳答案

你有一个无限循环:

 while (true)

没有终止程序的条件。

您可以使用全局 isDone 变量并将 true 替换为:

while (!isDone)
{
guessNumber();
}

关于java - 为什么我的程序没有停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317252/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com