DO WHILE循环中的变量
下面是一些要求用户输入整数的代码。
public int getValidInput() {
Scanner user_input = new Scanner(System.in);
do {
System.out.println("Enter an integer >=1 and <=10: ");
int number = user_input.nextInt();
} while (number > 10 || number < 0);
return number;
}
虽然我在do命令外初始化number时(即将其设置为int number),然后在do循环中设置number = user_input.nextInt();
,但如图所示的代码不工作。为什么它在一种情况下有效,而在另一种情况下不起作用?
解决方案
,因为在JAVA中,变量的作用域是声明它们的块。在您的示例中,int number =
是do...while
块中的,因此该变量仅存在于该块中。
通过将声明移出块,移入方法的块中,该变量将存在于方法的整个块(包括嵌套块)中。
相关文章