首页 > 解决方案 > 在 Do while 循环验证中添加 Int 验证

问题描述

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");
    }
}

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

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

编辑:显然,您必须在input.nextLine();之后添加input.nextInt();程序才能真正继续并获取下一条指令,而不是陷入循环。如果我错了,请纠正我,仍在学习并感谢所有帮助。

标签: javaloopsvalidationdo-while

解决方案


利用

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

推荐阅读