java - 变量可能尚未初始化错误

标签 java variables initialization

当我尝试编译这个时:

public static Rand searchCount (int[] x)
{
    int a ;
    int b ;

    ...

    for (int l= 0; l<x.length; l++)
    {
        if (x[l] == 0)
        a++ ;
        else if (x[l] == 1)
        b++ ;
    }

    ...

}

我收到这些错误:

Rand.java:72: variable a might not have been initialized
                a++ ;
                ^
Rand.java:74: variable b might not have been initialized
                b++ ;
                ^
2 errors

在我看来,我是在方法的顶部初始化它们的。出了什么问题?

最佳答案

声明了它们,但没有初始化它们。初始化它们是将它们设置为等于一个值:

int a;        // This is a declaration
a = 0;        // This is an initialization
int b = 1;    // This is a declaration and initialization

您收到错误是因为您尚未初始化变量,但在 for 循环中递增了它们(例如 a++)。

Java 原语具有默认值,但正如下面一位用户评论的那样

Their default value is zero when declared as class members. Local variables don't have default values

关于java - 变量可能尚未初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60062504/

相关文章:

c - c中可变大小对象的初始化问题

Python类继承初始化

java - 将 Flash 文件上传与 JSF 集成

java - BlazeDS 和 ColdFusion - jRun 内存使用量增加导致 java.lang.OutOfMemoryError : Java heap space

angular - 构建 Angular 库时是否可以使用自定义 Webpack 配置?

C++ - 临时变量及其生命周期

java - 如何使用构造函数初始化内部类的新字段?

java - 无法获取 Retrofit 2 响应正文

java - 如何在新方法中使用两种不同方法中的变量?

r - 为向量条目分配名称而不为向量分配变量名称?