当我尝试编译时:
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
因为未初始化变量,但a++在for循环中增加了变量(例如),所以会收到错误消息。
a++
for
Java原语具有默认值,但如下一位用户所述
当声明为类成员时,它们的默认值为零。局部变量没有默认值