java - do while 循环中的变量

标签 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 中,变量的范围仅限于声明它们的 block 。在您的示例中,int number = do...while block 中,因此变量仅存在于该 block 中。

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

关于java - do while 循环中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32135713/

相关文章:

java - 从PDF过滤出超过特定字体大小的所有文本

java - 发现 javax.mail.AuthenticationFailedException : failed to connect, 未指定密码?在收听密码正确的新邮件时

java - 当我将冷漠服务器数据库转换为 Derby 数据库时如何解决这些问题

c - while 循环在 c 中未按预期工作

javascript - 如何获取函数名和getElementById中的变量

Java Do While 语句在 Try Catch 语句之后无限循环

java - 根据传入的字符串设置枚举值

java - 获取 Facebook 好友性别

java - do-while 语句初学者 java max-min 提示符

java - Java中的2种不同的do-while循环结构?