在数字范围内验证扫描仪输入

如何解决在数字范围内验证扫描仪输入?

开发过程中遇到在数字范围内验证扫描仪输入的问题如何解决?下面主要结合日常开发的经验,给出你关于在数字范围内验证扫描仪输入的解决方法建议,希望对你解决在数字范围内验证扫描仪输入有所启发或帮助;

问题描述

因为你实例@H_404_1@input是@H_404_1@0,但从来没有给用户一个机会来改变这种情况,前两个条件语句的条件总是假的(没有从扫描仪读取和0之间没有@H_404_1@min和@H_404_1@max)。因此,该程序会一直执行到@H_404_1@else每次。只需在之前添加一条语句,该语句将从用户@H_404_1@do- while那里获取值@H_404_1@input。

@H_404_1@input = scanner.nextInt();

// your do-while loop

(您可能还必须稍微调整代码以获得所需的交互类型。提示-您正在从用户读取两个值。)

解决方法

我目前正在创建第一个在控制台中执行的游戏。

我被要求验证可以用简单代码完成的输入。目标是输入,然后验证该数字是否为整数并且在1-4的范围内。如果可能,应使用基本算法解决该问题。

问题是它不会给我我想要的结果。当我输入字符串时,它可以工作,但是会在我输入的每个数字(包括范围内的数字)上循环播放。有人知道为什么吗?

public class Menu {

    public static void main(String[] args) {

        try (Scanner scanner = new Scanner(System.in)) {
            int input = 0;
            int min = 1;
            int max = 4;

            boolean inputValidate;

            System.out.println("Main Menu");
            System.out.println("=========");
            System.out.println("1. Play Game");
            System.out.println("2. About");
            System.out.println("3. View Saved Games");
            System.out.println("4. Exit");
            System.out.println("");

            do {
                System.out.print(">> ");
                if (!scanner.hasNextInt()) {
                    inputValidate = false;
                    System.out.println("Not a number. Please input number 1-4.");
                    scanner.nextLine();
                } else if (input <= max && !(input < min)) // if input <= 4 and input is not less than 1
                {
                    input = scanner.nextInt();
                    inputValidate = true;
                } else {
                    inputValidate = false;
                    System.out.println("Not in range. Please input number 1-4.");
                    scanner.nextLine();
                }
            } while (!(inputValidate));

            switch (input) {
                case 1:
                    break;

                case 2:
                    System.out.println("Good work!");
                    break;

                case 3:
                    break;

                case 4:
                    break;
            }

        }
    }
}
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

猜你在找的编程问答相关文章

怎样才能让 Git“忘记”一个被跟踪但现在在 .gitignore 中的文件?
Python 中的metaclasses是什么?
如何在 Linux 上查找包含特定文本的所有文件?
如何从异步调用返回响应
如何在一个表达式中合并两个字典(取字典的并集)?
HTTP 中的 POST 和 PUT 有什么区别?
使用 Git 将最近的提交移动到新分支
在 JavaScript 比较中应该使用哪个等于运算符 (== vs ===)?
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注