我正試圖編寫一個程序,其中run方法調用謂詞方法,詢問某人「你想今晚去看電影嗎?」。如果用戶對問題輸入「是」,我希望程序說「好的,今晚我們走吧。」如果用戶輸入「否」,我希望程序打印出「這很酷,下週就可以開始。」但是,如果用戶輸入「也許」,我希望我的程序說「這是一個是或否的問題」,然後再次提問「你想今晚去看電影嗎?」,然後等待用戶輸入再次迴應。
我遇到的問題是如果用戶輸入「也許」程序說「這是一個是或否的問題」,然後自動打印「這很好,讓我們下週」。我如何解決我的程序中這個不正確的邏輯?這是本書中關注參數傳遞的章節中的一個問題。我正確地設計了我的程序,將字符串值從運行方法傳遞給isYesorNo方法,我正在嘗試寫什麼?謂詞方法是/否/可能的迴應
import acm.program.*;
public class MoviesTonight extends ConsoleProgram {
public void run() {
String answer = readLine("do you want to go to a movie tonight?");
if (isYesorNo(answer)) {
println("Ok. Let's go tonight");
} else
println("that's cool let's go next week");
}
private boolean isYesorNo(String response) {
while (!response.equals("yes") && !response.equals("no")) {
println("it's a yes or no question");
break;
}
return (response.equals("yes"));
}
}
如果我不使用破解程序會連續打印「這是一個yes或no的問題」,它不會停止。 – 2013-05-14 01:26:05
是的,因爲你沒有得到新的輸入。您應該添加另一行以從'readLine'獲取新輸入。 – 2013-05-14 01:28:43
在isYesorNo方法內還是在運行方法中添加另一個輸入行? – 2013-05-14 01:31:16