2016-04-03 89 views
1

如下面的代码是如何工作很困惑:当main方法调用方法时,方法是否执行从上到下?

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()?

+0

不知道sc是什么类,这是很难解释,虽然我可以猜测。你能否更新这个问题来澄清这个帖子? – Prisoner

+1

以调用它们的顺序调用方法;不一定是自上而下。 –

+0

如果你立即输入一个'int',循环将被有效地跳过。 –

回答

2

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

的这段代码的含义的英文简短摘要如下:

虽然他们不是整数旁边,读取下一行,并忽略该行并打印“这不是一个整数...”。如果一个整数是下一行,则返回下一行。

希望这有助于您更好地理解代码。评论你是否想要更详细的解释

相关问题