初始化将在循环内设置的变量时的优良作法是什么?

时间:2018-12-02 14:13:54

标签: java loops variables

以下代码仅是示例,但在这种情况下,我经常遇到错误。

在这种情况下,当我尝试调用isPrime(factor1)时,我收到一条错误消息:“变量factor1可能尚未初始化”。

我知道一种快速解决方案是将factor1和factor2都初始化为0或-1。但是在这种情况下的最佳实践是什么?

还请注意,这只是一段代码摘要。

int factor1;
int factor2;

for(int i = 2; i< n; i++) {
    if(n % i == 0){
        factor1 = n / i;
        factor2 = i;
        break;
    }
}

if(isPrime(factor1)){
    factors.add(factor1);
} else {
    factors.addAll(primeFactorization(factor1));
}

1 个答案:

答案 0 :(得分:0)

正如@Hovercraft Full Of Eels指出的那样,在大多数情况下,您只是将变量初始化为某个默认值,例如:

int factor1 = 0, factor2 = 0;
for(int i = 2; i< n; i++) {
    if(n % i == 0){
        factor1 = n / i;
        factor2 = i;
        break;
    }
}
if(isPrime(factor1)){
    factors.add(factor1);
} else {
    factors.addAll(primeFactorization(factor1));
}