当main方法调用时,方法是从上到下执行?

时间:2016-04-03 01:02:33

标签: java

以下代码的工作方式非常困惑:

static Scanner sc = new Scanner(System.in);

    public static int GetAnInteger()
    {
        while (!sc.hasNextInt())
        {
            sc.nextLine();
            System.out.print("That's not "
                    + "an integer. Try again: ");
        }
        return sc.nextInt();
    }

我理解.hasNextInt()记录一个值并用作布尔值来测试它是否为int。 .nextLine()记录下一行,但是如何调试循环?

当我执行代码时,输​​入.nextLine()之后系统不应该打印语句吗?

1 个答案:

答案 0 :(得分:2)

感叹号表示布尔值不是。所以它翻转了布尔值。真是假。假的是真的。

此代码的英文版简短摘要如下:

虽然下一行不是整数,但请阅读下一行并忽略该行并打印“那不是整数......”。如果整数是下一行,则返回下一行。

希望这有助于您更好地理解代码。如果您想要更详细的解释,请评论