Java 错误:找不到符号递归

Java 错误:找不到符号递归,java,Java,我的问题是它一直在说: 错误: cannot find symbol for n here: System.out.println("Sum: " + sumOfArray(a, n)); 如何解决此错误? 对不起,我是java TT新手 代码: import java.io.*; import java.util.Scanner; public class ArraySum { public static int sumOfArray(int[] a, int n) {

我的问题是它一直在说:

错误

cannot find symbol for n here:
    System.out.println("Sum: " + sumOfArray(a, n));
如何解决此错误? 对不起,我是java TT新手

代码:

import java.io.*;
import java.util.Scanner;

public class ArraySum {
  public static int sumOfArray(int[] a, int n) {
    if (n == 0) {
      return a[n];
    } else {
      return sumOfArray(a, n - 1) + a[n];
    }
  }

  public static void main(String args[]) {
    Scanner s = new Scanner(System.in);
    int[] a = new int[10];
    int sum = 0;
    System.out.print("Enter the elements: ");
    for (int n = 0; n < 10; n++) {
      a[n] = s.nextInt();
    }
    System.out.println("Sum: " + sumOfArray(a, n));
  }
}
import java.io.*;
导入java.util.Scanner;
公共类数组{
公共静态int-sumOfArray(int[]a,int-n){
如果(n==0){
返回一个[n];
}否则{
返回sumOfArray(a,n-1)+a[n];
}
}
公共静态void main(字符串参数[]){
扫描仪s=新的扫描仪(System.in);
int[]a=新的int[10];
整数和=0;
System.out.print(“输入元素:”);
对于(int n=0;n<10;n++){
a[n]=s.nextInt();
}
系统输出println(“总和:+sumOfArray(a,n));
}
}

这是因为您在
中为
声明了
n
。它的作用域仅在
循环的

所以不是

for (int n = 0; n < 10; n++) {
      a[n] = s.nextInt();
    }

现在,您不必担心更改for循环中的大小,并且在调用
sum()

时,这是因为您已经在
for
内部声明了
n
。它的作用域仅在
循环的

所以不是

for (int n = 0; n < 10; n++) {
      a[n] = s.nextInt();
    }

现在,您不必担心更改for循环中的大小,在调用
sum()

时,问题是n不在该范围内。当您说for(int n;…)时,这意味着n将只对该循环的主体可用。您正在尝试在循环外打印它。您可以在循环外声明n:

int n;
for (n = 0; n < 10; n++) {
    a[n] = s.nextInt();
}
intn;
对于(n=0;n<10;n++){
a[n]=s.nextInt();
}

问题在于n不在该范围内。当您说for(int n;…)时,这意味着n将只对该循环的主体可用。您正在尝试在循环外打印它。您可以在循环外声明n:

int n;
for (n = 0; n < 10; n++) {
    a[n] = s.nextInt();
}
intn;
对于(n=0;n<10;n++){
a[n]=s.nextInt();
}

粘贴整个代码
n
在for循环的范围内声明。在循环之前声明它,或者使用
a.length
10
作为
sumOfArray(a,n)
的第二个参数。粘贴整个代码
n
在for循环的范围内声明。在循环之前声明它,或者使用
a.length
10
作为
sumOfArray(a,n)
的第二个参数。这对初学者来说是一个很好的解释。对初学者来说是一个很好的解释。