繁体   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