如何在for循环之外使用布尔hasDivisor ?当我试图编译这段代码
时,我得到消息"不能从结果类型为void的方法返回值"。for (int i = 0; i < NumBox.length; i++)
{
if (NumBox[i] == 0)
continue;
boolean hasDivisor = false;
for (int j = 0; j < i; j++) {
if (NumBox[j] == 0)
continue;
if (NumBox[i] % NumBox[j] == 0) {
hasDivisor = true;
break;
}
}
return hasDivisor;
}
第一个问题:变量具有作用域,该作用域仅限于声明它们的块。变量在for循环的内声明为,但是您希望在循环之外使用它。在之外(即在循环之前)声明。
第二个问题:声明你的方法返回boolean
-从错误信息判断,它目前声明返回void
你应该这样做:
boolean hasDivisor = false;
for (int i = 0; i < NumBox.length; i++)
{
if (NumBox[i] == 0)
continue;
hasDivisor = false;
for (int j = 0; j < i; j++) {
if (NumBox[j] == 0)
continue;
if (NumBox[i] % NumBox[j] == 0) {
hasDivisor = true;
break;
}
}
你在循环中声明了hasDivisor变量,这使得它的作用域只适用于循环。要访问它,应该在外部声明它。