如何在for循环外使用boolean 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;
}
答案 0 :(得分:2)
第一个问题:变量的范围仅限于他们声明的块。您的变量在 for循环中声明为,但您希望在外部循环中使用它。在循环中声明它在之外(即之前)。
第二个问题:声明您的方法返回boolean
- 根据错误消息判断,它当前被声明为返回void
答案 1 :(得分:0)
这是你应该做的:
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变量,这使得它仅限于循环。要访问它,你应该在外面声明它。