下面是一些要求用户输入整数的代码。
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 中,变量的范围仅限于声明它们的 block 。在您的示例中,int number =
在 do...while
block 中,因此变量仅存在于该 block 中。
通过将声明移出 block ,移入方法的 block 中,该变量就存在于方法的整个 block (包括嵌套 block )中。
关于java - do while 循环中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32135713/