【问题标题】:java arrays error: /tmp/java_959p0x/TestPrimeDividers.java:30: error: cannot find symbol return arr;java数组错误:/tmp/java_959p0x/TestPrimeDividers.java:30:错误:找不到符号返回arr;
【发布时间】:2017-05-06 06:30:39
【问题描述】:

您能帮我弄清楚为什么我在这个 Java 程序中遇到错误吗?

public class TestPrimeDividers {
    public static boolean isPrime(long n) {
        boolean flag = true;
        for (int i = 2; i < n && flag ; i++) {
            if ((n % i) == 0)
                flag = false;
        }
        return flag;
    }
    public static long [] primeDividers(long n) {
        if (isPrime(n)) {
            long arr[] = new long [0];
            return arr;
        } else {
            int j = 0;
            for (int i = 2 ; i < n; i++)
                if (isPrime(i))
                    j++;
            long arr[] = new long [j];
            j = 0;
            for (int i = 2; i < n; i++)
                if (isPrime(i)) {
                    arr[j] = i;
                    j++;
                }

        }
        return arr;
    }
    public static void main(String[] args) {
        long arr [] = primeDividers(6);
    }
}

我得到的错误是:

/tmp/java_959p0x/TestPrimeDividers.java:30: error: cannot find symbol
return arr;
       ^
  symbol:   variable arr
  location: class TestPrimeDividers
1 error

【问题讨论】:

标签: java arrays symbols


【解决方案1】:

在 Java 中,变量的范围仅限于声明它们的块。您的方法primeDividers 声明了两个名为arr 的不同变量,它们都在不同的嵌套块中;在顶层都无法访问。因此,当您尝试从方法的顶层返回arr 时,会出现错误。

在输入任何嵌套块之前,尝试在函数顶部声明变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 2013-12-06
    • 2016-07-22
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多