在Do While循环验证中添加Int验证

时间:2018-09-21 11:52:15

标签: java loops validation do-while

rails 5.2.1

我正在尝试将页码添加到我的代码中,而该代码将告诉用户如果该数字不是1到1500时再次输入页码。

我能够正常运行代码,并且可以在没有页面计数器的情况下结束程序,但是一旦我添加到页面计数器段中,程序就会中断或无法正常运行。

编辑:显然,您必须在import java.util.Scanner; import java.util.*; public class ICT2100_LabTutorial2 { public static void main(String args[]){ Scanner input = new Scanner(System.in); System.out.println("Enter your title: "); String title = input.nextLine(); int page; int counter = 1; String value; do{ System.out.println("Chapter " + counter++); value = input.nextLine(); if(value.length() > 44) { System.out.println("More than 44 characters"); } System.out.println("Enter a page number: "); page = input.nextInt(); while((page < 1) && (page > 1500)){ System.out.println("Enter a page number that is between 1 to 1500: "); page = input.nextInt(); } }while(!value.equals("END")); System.out.println("you ended the process"); } } 之后添加input.nextLine();,程序才能继续执行并获取下一条指令,而不会陷入循环中。如果我错了,请纠正我,仍在学习并感谢您的所有帮助。

3 个答案:

答案 0 :(得分:2)

使用

while((page < 1) || (page > 1500)) {
...
}

答案 1 :(得分:1)

尝试使用Or条件代替and

while(page < 1 || page > 1500)

两个条件不能同时成立,因此用||删除&&如上所示。

答案 2 :(得分:1)

您正在使用AND operator,当两个条件都为true时返回true。但是在您的情况下,当while loop中的任何一个条件为true时,它应该返回true,而OR operator就是这样做的。

因此,请使用OR operator (||)取代while循环

while((page < 1) || (page > 1500)){
}