我創建了一個while循環來爲我的程序創建一個菜單,它將保持循環,直到用戶在控制檯中輸入「Quit」。我的問題是,每當我輸入'Transfer'到控制檯時,if語句都可以很好地運行,但是當它返回到循環的開頭時,消息會打印兩次而不是一次。這與任何其他選項都不會發生。在while循環期間打印兩次System.out.println()
代碼:
int x = 0;
while(x != 1) {
System.out.println("To transfer funds, please type 'Transfer'\n" //Typical message
+ "To list recent transactions, please type 'Recent'\n"
+ "To display account details, please type 'Details'\n"
+ "To quit the application, please type 'Quit'");
String Option1 = "Transfer"; //Variables
String Option2 = "Recent";
String Option3 = "Details";
String Option4 = "Quit";
String Menu = ConsoleInput.nextLine();
if (Menu.equals(Option1)) {
//Statements
} else if(Menu.equals(Option2)){
//Statements
} else if(Menu.equals(Option3)){
//Statements
} else if(Menu.equals(Option4)){
//End statement
x++;
}
}
編輯:你們當中有些人評論有關在最後else語句x的增量,並說,它應該else語句外面放。它在那裏,因爲當用戶輸入'Quit'到控制檯時,它將退出循環,如果它被放在else語句之外,那麼用戶將無法訪問其他選項。
編輯2(解決方案):我終於解決了這個問題。原來,這是if語句中的掃描語句。我應該已經顯示了完整的代碼給大家看,但我認爲這只是if-else-statements自己。
不應該'x ++'超出最後一個if? – lared
你的代碼適合我。你也可能不應該使用'int x'作爲標誌停止。更清晰的解決方案會像'boolean stop = false; while(!stop){... if(stopConditon)stop = true;}' – Pshemo
我試過你的例子,它看起來很好。問題必須出現在您的「轉移」聲明中。另外,你是否考慮過使用'break'語句而不是採用值0或1的變量?或者在其他方面意義重大? –