当main方法调用方法时,方法是否执行从上到下?
问题描述:
如下面的代码是如何工作很困惑:当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()?
答
感叹号表示布尔值不是。所以它翻转布尔值的值。真是假。虚假成真。
的这段代码的含义的英文简短摘要如下:
虽然他们不是整数旁边,读取下一行,并忽略该行并打印“这不是一个整数...”。如果一个整数是下一行,则返回下一行。
希望这有助于您更好地理解代码。评论你是否想要更详细的解释
不知道sc是什么类,这是很难解释,虽然我可以猜测。你能否更新这个问题来澄清这个帖子? – *er
以调用它们的顺序调用方法;不一定是自上而下。 –
如果你立即输入一个'int',循环将被有效地跳过。 –