gpt4 book ai didi

java - 我需要帮助修复一个 java bug

转载 作者:行者123 更新时间:2023-12-01 22:48:30 24 4
gpt4 key购买 nike

我正在开发一款文字游戏,但出现了一个错误。简而言之,当我运行该程序时,它会执行此操作。

    Channel name:
hey
Your channel name, hey, are you sure you like this name? type yes or no.
no
Name for video?

我想要发生的是,当有人说“不”时,它会重新启动程序,但程序仍然会继续。这是代码。

    public static void main(String[] args) {
//views


//channel name
String cfc = "Channel name: ";
System.out.println(cfc);
String cn = sc.nextLine();
System.out.println("Your channel name, " + cn + ", are you sure you like this name? type yes or no.");
@SuppressWarnings("unused")
Boolean nn;
String yn;
while (true) {
yn = sc.nextLine().trim().toLowerCase();
if (yn.equals("yes")) {
nn = true;
break;
} else if (yn.equals("no")) {
nn = false;
break;
} else {
System.out.println("Channel name: ");
System.out.println(cfc);
String un = sc.nextLine();
System.out.println("Your channel name, " + un + ", are you sure you like this name? type yes or no.");
}
}
Video();
}

不知道出了什么问题。请帮忙。

最佳答案

break 正在打破循环,因此当您输入 no 时,您将跳出循环并在 video 中运行方法...

相反,不要偷懒,并在循环中使用实际的退出条件。另外,您希望至少运行此循环一次,因此使用 do-while 循环,这将确保循环必须至少运行一次...

此外,您还需要将提示移动到循环中,以便重复它,否则它可能对用户来说没有意义,例如......

boolean nn = false;
String cfc = "Channel name: ";
String cn = null;
do {
System.out.println(cfc);
cn = sc.nextLine();
System.out.println("Your channel name, " + cn + ", are you sure you like this name? type yes or no.");
yn = sc.nextLine().trim().toLowerCase();
if (yn.equals("yes")) {
nn = true;
}
} while (!nn);

关于java - 我需要帮助修复一个 java bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25030153/

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