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)
的第二个参数。这对初学者来说是一个很好的解释。对初学者来说是一个很好的解释。