Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何循环直到用户在java上输入正确的内容?_Java_Loops_While Loop - Fatal编程技术网

如何循环直到用户在java上输入正确的内容?

如何循环直到用户在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

我正在编写这个程序,当用户输入的数字不在1000和2000之间时,我想显示消息“无效的机器号,请重新输入”。我试图循环,直到用户输入正确的输入,但我不能。当我在输入无效数字后输入正确数字时,它仍然显示错误消息

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在变量名中区分大小写!