2012-02-09 89 views
1

如何讓我的程序在用戶決定有意退出程序之前提示用戶進行不同的選擇?現在我試着用一個名爲'exit'的布爾值來嘗試一個do-while循環,試圖說exit雖然是false,但要提示用戶選擇要做什麼,儘管它只要求他們一次,然後在完成之後用戶想要的,應用程序停止。更多'do while'循環的麻煩,Java

這裏是我的代碼:

boolean exit = false; 

do { 
    int options = 0; 
    do { 
    options = Integer.parseInt(JOptionPane.showInputDialog(null, 
       "Would you like to:" 
       + "\n(Enter number value of option you would like to choose.)\n" 
       + "\n1. See your recommendations. \n2. See top rated books." 
       + "\n3. See random books of the day. \n4. Exit")); 
    } while (logIn < 1 || logIn > 4); 

    if (options == 1) { 
    recommend.displayRecommendations(custIndex); 
    } else if (options == 2) { 
    calculations.displayTopTen(); 
    } else if (options == 3) { 
    calculations.displayRandomBooks(); 
    } else if (options == 4) { 
    exit = true; 
    System.exit(0); 
    } 
} while (exit = false); 

任何幫助,將不勝感激。

回答

5

您檢查logIn變量,但正確的應該是options。變化:

while (logIn < 1 || logIn > 4) 

到:

while (options < 1 || options > 4) 

此外,while (exit = false)(未遂分配)必須while (exit == false)(比較),或者甚至更好,while (!exit)

而且,最後,雖然它不無所謂,在撥打System.exit()之前立即設置exit = true有點多餘。

+0

更好,'!exit' :) – 2012-02-09 01:13:25

+0

@AndresF。同意! – 2012-02-09 01:15:02

+0

如果你想明確而不是說'!exit'使用'false == exit'。這樣,如果你發指令,編譯器會告訴你,你不能分配給'false'。 'null'比較也很方便。 – 2012-02-09 01:16:22

7

這是你的問題:

while (exit = false); 

非常仔細...

+0

Ofcoooooooourse ...我爲布爾值賦值爲false,而不是檢查是否爲false。謝謝。 – Marcos 2012-02-09 01:15:29

+0

「這是你的問題」 - 你是一個_pirate嗎?_這是一個可怕的事情做的英語:-) – paxdiablo 2012-02-09 01:16:10

+0

@Marcos,嘿嘿,我們都在某個時候完成了它... – Nim 2012-02-09 01:16:56