Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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 - Fatal编程技术网

Java 输入与每周天数对应的整数相关的验证

Java 输入与每周天数对应的整数相关的验证,java,Java,我一直在阅读Java文档,但似乎真的找不到解决方案。我的程序要求与一周中的某一天对应的数字为1-7。我希望程序在输入错误的数字时返回一个错误“对不起,不是有效的数字”,例如8、9、20等(因为它们不对应于一周中的某一天)。我的方法不起作用,有输入吗 while (!stdln.hasNextInt(1,2,3,4,5,6,7)) { System.out.println("Sorry, not a valid number."); stdln.next(); } 我试过了 wh

我一直在阅读Java文档,但似乎真的找不到解决方案。我的程序要求与一周中的某一天对应的数字为1-7。我希望程序在输入错误的数字时返回一个错误“对不起,不是有效的数字”,例如8、9、20等(因为它们不对应于一周中的某一天)。我的方法不起作用,有输入吗

while (!stdln.hasNextInt(1,2,3,4,5,6,7)) {
    System.out.println("Sorry, not a valid number.");
    stdln.next();
}
我试过了

while (dayOfTheWeek > 7) {
    System.out.println("Sorry, try again");
    stdln.next();
}

但这让我陷入了一个循环中

这应该可以满足你的要求。它将从用户处获取
int
,并在
int
超出范围时报告。您需要添加一个终止条件,该条件将中断循环,或者它将运行,直到您终止应用程序:

while (stdIn.hasNextInt()) {
    dayOfTheWeek = stdIn.nextInt();
    if (dayOfTheWeek == 0) {
        System.out.println("Zero was entered. Exiting");
        break;
    }
    if (dayOfTheWeek < 1 || dayOfTheWeek > 7) {
        System.out.println("Sorry, not a valid number.");
    }
    // do something else with dayOfTheWeek
}

还要记住,
next()
方法将获取您输入的每个字符,包括新行。您还必须将
next
的结果分配给一个变量才能使用。

您的后一次尝试将永远不会起作用,因为它不会修改DayOfWeek变量。感谢您的输入,这将为我提供:WorkHours。java:24:error:variable DayOfWeek已在方法main(字符串[])@IronCoder31 Right中定义。然后只需分配给
dayofweek
,而不是定义。我相应地编辑了我的答案。很抱歉一直打扰你,但现在当我执行程序时,它不会跳到下一节。关于如何结束循环,我完全是一片空白。零似乎是结束循环的一个很好的无效值。更改了我回答中的代码。好的,我理解,但如果输入了错误的值,我不想退出程序。我想让它转到下一个问题,“你病了吗”?我如何使它跳出循环进入下一节?我希望我的措辞恰当,谢谢
stdln.hasNextInt(1,2,3,4,5,6,7)