我提示用户输入一个整数,如果他们没有输入正确的整数(作为选项的引用),那么我希望提示再次出现,直到他们这样做。
到目前为止,这是我的代码:
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的数字,无论如何都会将它们带到第二个选项。
任何帮助都将不胜感激。
答案 0 :(得分:3)
看起来你的while循环逻辑已关闭。 当logIn小于1或者logIN小于2(应该大于)时,while循环将继续。
你可能意味着:
do ... while(logIn&lt; 1 || logIn&gt; 2);
答案 1 :(得分:3)
您的while
条件为
while (1 > logIn || logIn < 2)
表示输入必须小于1或小于2才能继续循环。你想要的是
while (logIn < 1 || logIn > 2)
或者可能更清晰
while (logIn != 1 && logIn != 2)
答案 2 :(得分:1)
替换为
while (1 != logIn && logIn != 2);
因此,如果logIn具有与1和2不同的值,则循环将继续。
答案 3 :(得分: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 (logIn != 1 && logIn != 2)
如上所述更新代码中的登录信息:)