以下代码仅是示例,但在这种情况下,我经常遇到错误。
在这种情况下,当我尝试调用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));
}
答案 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));
}