我正在為我的學校專案制作問答游戲。如果輸入無效,我很難讓用戶回答相同的問題。當所有問題都沒有有效輸入時,我想讓用戶回答相同的問題。
到目前為止,這是我的代碼:
import java.util.Scanner;
public class MainClass {
public static void main(String[]args) {
String quest1 = ("Who founded the company spaceX?\na: Will Smith\nb: Elon Musk\nc: Kevin Hart");
String quest2 = ("Which sport is the most famous in the world?\na: Football\nb: Basketball\nc: Tennis");
questionsAndAnswers [] questionAnswers = {
new questionsAndAnswers(quest1, "b"),
new questionsAndAnswers(quest2, "a")
};
doQuiz(questionAnswers);
}
public static void doQuiz(questionsAndAnswers[] questionAnswers) {
int points = 0;
Scanner input = new Scanner(System.in);
boolean looper = true;
while (looper) {
for(int i = 0; i < questionAnswers.length; i ){
System.out.println(questionAnswers[i].questions);
String userAnswer = input.nextLine();
if(!"a".equals(userAnswer) && !"b".equals(userAnswer) && !"c".equals(userAnswer)) {
System.out.println("Invalid input, try again");
break;
}
else if(userAnswer.equals(questionAnswers[i].answers)) {
points ;
System.out.println("Correct! Your points:" points);
}
continue;
}
looper = false;
}
}
}
uj5u.com熱心網友回復:
到目前為止,代碼很棒。當用戶用無效答案回答問題時,您已經發現這很好,但是您想要做的是重新詢問用戶輸入,以便跟蹤用戶是否輸入了有效答案
boolean hasEnteredValidAnswer = false
while(!hasEnteredValidAnswer) {
String userAnswer = input.nextLine();
if("a".equals(userAnswer) || "b".equals(userAnswer) || "c".equals(userAnswer)) {
hasEnteredValidAnswer = true
}
else {
System.out.println("Invalid input, try again");
}
}
uj5u.com熱心網友回復:
使用while回圈代替for回圈:
int i = 0;
while (i < questionAnswers.length){
System.out.println(questionAnswers[i].questions);
String userAnswer = input.nextLine();
if(userAnswer.equals(questionAnswers[i].answers)) {
points ;
System.out.println("Correct! Your points:" points);
i;
} else {
System.out.println("Invalid input, try again");
// do not increment i
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338038.html
下一篇:獲取字典字典中具有最小值的鍵
