【问题标题】:while I try to run basic Java code there was some variable scope error why it happens?当我尝试运行基本的 Java 代码时,出现了一些变量范围错误,为什么会发生这种情况?
【发布时间】:2022-08-17 23:44:48
【问题描述】:
class HelloWorld {
    public static void main(String[] args) {
        int sum;
        for (int i = 0; i < 10; i++) {
            if (i == 9) {
                sum = 10;
            }
        }
        System.out.println(sum);
    }
}

为什么这段代码会出现这个错误?

HelloWorld.java:9:错误:变量 sum 可能尚未初始化 System.out.println(sum);

  • 您的编译器将考虑它根本不运行的每个循环,以及它永远不会进入的每个 if 语句,因为条件可能永远不会满足。因此编译器不能保证你的sum=10 的初始化已经达到。

标签: java


【解决方案1】:

我们可以查看代码并直观地推断sum 在使用时将始终有一个值,因为循环将始终执行并且其中一个迭代将满足if 条件。

编译器没有直觉推理任何一个。它看到一个循环和一个条件块,但它不能保证sum 在使用时将具有一个值。对于编译器,循环可能迭代 0 次,或者条件可能永远不会是true

您可以通过简单地初始化值来纠正问题:

int sum = 0;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多