当前位置: 首页 > 知识库问答 >
问题:

当我尝试运行基本的Java代码时,出现了一些变量作用域错误,为什么会出现这种情况?[重复]

沃驰
2023-03-14
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);

共有1个答案

李振国
2023-03-14

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

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

基本上,我们可以在头脑中“测试代码”并预测其结果。但是编译器不会测试代码,不管代码有多简单。

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

int sum = 0;
 类似资料: