我現在正在學習 Java,以前從未使用過 switch 陳述句。我試圖輸入一個簡單的迷人測驗,但 switch 陳述句中的某些內容不起作用。
我嘗試在程式中的各個點放置文本以測驗程式是否每次都到達該代碼。我在實際開關里面有很好的反應,所以如果我回答問題 1 錯誤會出現文本提示。但是在 switch 陳述句內部之后,在 for 回圈的所有迭代完成之前,我的評分輸出都不會出現。我曾嘗試將“正確/不正確”的輸出移動到各個點,但它們似乎都不起作用。
Scanner myScanner = new Scanner(System.in);
System.out.println("Enter your name!");
String name = myScanner.nextLine();
int wrongCounter = 0;
boolean correctChecker = false;
int score = 0;
String answer;
System.out.println("Welcome to the Charmed Quiz, " name "!");
for (int i = 0; i < 10; i ) {
if (wrongCounter < 4) {
switch(i) {
case 0:
System.out.println("Who read the spell that gave the Charmed Ones their powers?");
System.out.println("Enter your answer");
answer = myScanner.nextLine();
switch (answer) {
case "Pheobe":
correctChecker = true;
break;
default:
correctChecker = false;
break;
}
case 1:
System.out
.println("Who travelled to a cursed town with Prue when Pheobe was shot in a premonition?");
System.out.println("Enter your answer");
answer = myScanner.nextLine();
switch (answer) {
case "Cole":
correctChecker = true;
break;
default:
correctChecker = false;
break;
}
}
if (correctChecker == true) {
score ;
System.out.println("Correct!");
} else {
wrongCounter ;
System.out.println("Incorrect!");
}
uj5u.com熱心網友回復:
這絕對不是實作問答游戲的最佳方式,但如果您將其用作學習練習,那么最好的做法是聽取@rzwitserloot 的建議。
與內部 switch 陳述句相反,在主 switch 陳述句后面添加一個 break。
雖然當您可以使用correctChecker = "Pheobe".equals(answer);在一行中獲取 true 或 false 布林值時,內部 switch 陳述句并沒有真正的用途。
這只是意味著您可以避免使用第二個 switch 陳述句,從而減少混淆。
總而言之,您的案例可能如下所示:
case 0:
System.out.println("Who read the spell that gave the Charmed Ones their powers?");
System.out.println("Enter your answer");
answer = myScanner.nextLine();
correctChecker = "Pheobe".equals(answer);
break;
}
將來,最好將問題和答案存盤在陣列中并使用 for 回圈遍歷它。這是一個關于這個主題的很好的教程。
祝你專案的其余部分好運!
uj5u.com熱心網友回復:
這段代碼有很多很多問題。主要問題是break破壞它可以破壞的最接近的構造,在您的情況下是內部 switch. 而你的意圖顯然是打破兩者。要么 [A]break在case 1:陳述句之前添加另一個權利,要么 [B] 使用標記的中斷;outer: 在第一個 (primary/outer)之前放一些類似的東西switch,然后做所有這些陳述break outer;。
但是,實際上,這些(無論是外部還是內部)在 switch 形式中都沒有任何意義。我知道這是一個學習練習,但我會想其他的東西來學習。
還有,是菲比,不是菲比。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/400899.html
