【发布时间】:2020-05-27 19:22:22
【问题描述】:
作为我课程作业的一部分,我的任务是创建一个简单的问答游戏,该游戏会循环直到用户选择正确的答案。 当答案正确(答案为 B)或不正确时,我可以生成消息提示和响应提示,但我正在努力让 while 循环重置并再次提示用户。 目前,当用户得到错误答案时,它会在响应提示上无限循环。
import javax.swing.JOptionPane;
public class Quiz {
public static void main(String[] args) {
String question = "What colour is the sky?\n";
question += "A. Purple\n";
question += "B. Blue\n";
question += "C. Green\n";
question += "D. Yellow\n";
question += "E. Orange\n";
String answer = JOptionPane.showInputDialog(question);
answer = answer.toUpperCase();
int guess = 0;
while (answer != "B")
if (answer.equals("B")) {
JOptionPane.showMessageDialog(null,"Correct!");
break;
}
else if (answer.equals("A")) {
JOptionPane.showMessageDialog(null,"Incorrect. Please try again!");
}
else if (answer.equals("C")) {
JOptionPane.showMessageDialog(null,"Incorrect. Please try again!");
}
else if (answer.equals("D")) {
JOptionPane.showMessageDialog(null,"Incorrect. Please try again!");
}
else if (answer.equals("E")) {
JOptionPane.showMessageDialog(null,"Incorrect. Please try again!");
}
else {
JOptionPane.showMessageDialog(null, "Invalid answer. Please enter A, B, C, D, or E.");
}
guess++;
}
}
【问题讨论】:
-
guess++;不是while循环的一部分,仅供参考。 -
还有
while (answer != "B")和if (answer.equals("B"))这些说法是矛盾的。 -
在循环中使用方括号 (
{ ...}) -
在您的 while 循环中,您永远不会更改变量
answer的值。所以循环要么根本不运行,要么无限次运行。 -
如果你用
equals检查相等,为什么你用!=检查不相等?看看switch case
标签: java string while-loop