[英]While loop nested if else java
我的 while 循環有問題。 它需要不斷提出問題,直到答案正確為止。 有人可以建議嗎?
public class QuizW
{
public static void main(String[] args)
{
String question = "What is the capital of Australia? \n";
question += "A. Sydney\n";
question += "B. Melburne\n";
question += "C. Perth\n";
question += "D. Cannberra\n";
question += "E. Brisbane\n";
String answer = JOptionPane.showInputDialog(question);
answer = answer.toUpperCase();
int answerCorrect = 0;
while (answerCorrect == 0)
{
if (answer.equals("D"))
{
JOptionPane.showMessageDialog(null, "Correct!");
break;
}
else if (answer.equals("A") || answer.equals("B") || answer.equals("C") || answer.equals("E"))
{
JOptionPane.showMessageDialog(null, "Incorrect. Please try again.");
}
else
{
JOptionPane.showMessageDialog(null, "Invalid answer. Please enter A, B, C, D, or E.");
}
JOptionPane.showInputDialog(question);
}
}
}
你可以這樣做:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String question = "What is the capital of Australia? \n"
+ "A. Sydney\n"
+ "B. Melbourne\n"
+ "C. Perth\n"
+ "D. Canberra\n"
+ "E. Brisbane\n";
System.out.println(question);
String answer = scanner.next().toUpperCase();
while (true) {
if (answer.equals("D")) {
System.out.println("Correct");
break;
} else if (answer.equals("A") || answer.equals("B") || answer.equals("C") || answer.equals("E")) {
System.out.println("Wrong answer, try again.");
} else {
System.out.println("Incorrect input");
}
answer = scanner.next().toUpperCase();
}
}
我只使用控制台,沒有 JPannel,但你可以得到邏輯
結果控制台:
What is the capital of Australia?
A. Sydney
B. Melburne
C. Perth
D. Cannberra
E. Brisbane
a
Wrong answer, try again.
b
Wrong answer, try again.
p
Incorrect input
d
Correct
要縮短檢查wearg 值,您可以使用:
String[] wrong = {"A", "B", "C", "E"};
...
Arrays.asList(wrong).contains(answer)
如果你在 while 開始的時候問答案,你只需要寫一次:
String answer =null;
while (true) {
answer = scanner.next().toUpperCase();
if (answer.equals("D")) {
System.out.println("Correct");
break;
} else if (answer.equals("A") || answer.equals("B") || answer.equals("C") || answer.equals("E")) {
System.out.println("Wrong answer, try again.");
} else {
System.out.println("Incorrect input");
}
}
它也解決了你的錯誤:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.