1
do {
    System.out.println("Please enter a 16 digit number");
    while (!kbd.hasNextLong()) {
        System.out.println("That's not a valid number!");
        System.out.println("Please enter a 16 digit number");
        kbd.next();
    }
    number = kbd.nextLong();
} while (number > MAX || number < MIN );

MAX 被声明为 10000000000000000L

MIN 声明为 999999999999999L

但是当我运行我的程序并插入一个 16 位数字时,它会输出“请输入一个 16 位数字并且扫描仪再次提示。

有任何想法吗?

4

1 回答 1

0

你有一个范围检查:while (number > MAX || number < MIN )它限制了输入。尝试输入 999999999999999。

于 2013-10-22T20:05:56.940 回答