如何循环直到用户在java上输入正确的内容?
我正在编写这个程序,当用户输入的数字不在1000和2000之间时,我想显示消息“无效的机器号,请重新输入”。我试图循环,直到用户输入正确的输入,但我不能。当我在输入无效数字后输入正确数字时,它仍然显示错误消息如何循环直到用户在java上输入正确的内容?,java,loops,while-loop,Java,Loops,While Loop,我正在编写这个程序,当用户输入的数字不在1000和2000之间时,我想显示消息“无效的机器号,请重新输入”。我试图循环,直到用户输入正确的输入,但我不能。当我在输入无效数字后输入正确数字时,它仍然显示错误消息 System.out.println("Enter Vending Machine number(number 1000-2000):"); int vendMachNo = scan.nextInt(); while(vendMachNo <1000 || vendMachNo
System.out.println("Enter Vending Machine number(number 1000-2000):");
int vendMachNo = scan.nextInt();
while(vendMachNo <1000 || vendMachNo >2000)
{
System.out.println("Invalid machine number, please enter again");
int VendMachNo = scan.nextInt();
{
}
// ...
System.out.println(“输入自动售货机编号(编号1000-2000):”;
int vendMachNo=scan.nextInt();
而(第2000号)
{
System.out.println(“无效的机器编号,请重新输入”);
int VendMachNo=scan.nextInt();
{
}
// ...
您没有重用该变量,而是在循环中创建了一个新变量。它不在任何地方使用:
int VendMachNo = scan.nextInt();
相反,您应该重新分配在循环时签入的一个:
vendMachNo = scan.nextInt();
看一看,
System.out.println("Enter Vending Machine number(number 1000-2000):");
Scanner scan = new Scanner(System.in);
int vendMachNo = scan.nextInt();
while((vendMachNo < 1000 && vendMachNo > 2000)) {
System.out.println("Invalid machine number, please enter again!");
vendMachNo = scan.nextInt(); // reinitialize
}
System.out.println("Exiting!");
System.out.println(“输入自动售货机编号(编号1000-2000):”;
扫描仪扫描=新扫描仪(System.in);
int vendMachNo=scan.nextInt();
而((文氏<1000和文氏>2000)){
System.out.println(“无效的机器编号,请重新输入!”);
vendMachNo=scan.nextInt();//重新初始化
}
System.out.println(“退出!”);
您正在使用两个不同的变量VendMachNo和VendMachNo,java是键敏感的,因此您遇到了一个问题。
试试这个:
System.out.println(“输入自动售货机编号(编号1000-2000):”;
int VendMachNo=scan.nextInt();
而(第2000号)
{
System.out.println(“无效的机器编号,请重新输入”);
VendMachNo=scan.nextInt();
}
这并不能解决OP的问题。而且,即使它解决了问题,您也不应该回答打字错误。问题是,如果您的答案正确,OP应该会收到不同的错误消息。应该是语法错误。@TimBiegeleisen您是在谈论编辑后的答案吗?您声明了两个变量:int-vendMachNo
和int VendMachNo
。请注意,Java在变量名中区分大小写!