[英]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.