DO WHILE循环中的变量

2022-08-19 00:00:00 java 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块中的,因此该变量仅存在于该块中。

通过将声明移出块,移入方法的块中,该变量将存在于方法的整个块(包括嵌套块)中。

相关文章