当我尝试编译这个时:
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/