簡體   English   中英

Java的do while循環問題

[英]Problems with do while loops, Java

我提示用戶輸入一個整數,如果他們沒有輸入正確的整數(作為對選項的引用),那么我希望提示再次出現,直到他們輸入為止。

到目前為止,這是我擁有的代碼:

           int logIn = 0;
    do {
        logIn = Integer.parseInt(JOptionPane.showInputDialog(null,
                "Please:"
                + "\n(Enter number value of option you would like to choose.)\n"
                + "\n1. Log In \n2. Register"));
    } while (1 > logIn || logIn < 2);

    int custIndex;

    if (logIn == 1) {
        custIndex = recommend.getCustomerIndex();
    } else {
        customers.printCustomers();
        custIndex = customers.readCustomers().size();
    }

    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 (1 > options || options < 4);

唯一的問題是我的應用程序無法正確通過登錄。 如果用戶輸入1,則再次向他們顯示提示。 如果用戶輸入的數字大於2,則無論如何都將其帶到第二個選項。

任何幫助,將不勝感激。

看起來您的while循環邏輯已關閉。 當logIn小於1或logIN小於2(應大於)時,while循環將繼續。

您可能的意思是:

做... while(logIn <1 || logIn> 2);

while條件讀取

while (1 > logIn || logIn < 2)

這意味着輸入必須小於1或小於2,循環才能繼續。 你想要的是

while (logIn < 1 || logIn > 2)

或更清晰

while (logIn != 1 && logIn != 2)

用。。。來代替

 while (1 != logIn && logIn != 2);

因此,如果logIn的值不同於1和2,循環將繼續。

do {
    logIn = Integer.parseInt(JOptionPane.showInputDialog(null,
            "Please:"
            + "\n(Enter number value of option you would like to choose.)\n"
            + "\n1. Log In \n2. Register"));
} while (logIn != 1 && logIn != 2)

按照上面的代碼更新登錄名:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM