“无法从结果类型为void的方法返回值”

时间:2014-03-17 23:39:05

标签: java arrays compiler-errors return

如何在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;
              }

2 个答案:

答案 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变量,这使得它仅限于循环。要访问它,你应该在外面声明它。