gpt4 book ai didi

java - 错误: Cannot find symbol recursion

转载 作者:行者123 更新时间:2023-12-01 16:51:32 25 4
gpt4 key购买 nike

我的问题是它一直说:

错误:

cannot find symbol for n here:
System.out.println("Sum: " + sumOfArray(a, n));

如何解决此错误?抱歉,我是 java TT 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));
}
}

最佳答案

那是因为您已声明 n里面for 。它的范围在 for 内仅循环。

所以而不是

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

使用

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

它应该可以完成工作。

<小时/>

编辑:

正如 Andy Turner 所说,最好使用 a.length而不是一些常数。因为当你想改变数组大小 int[] a = new int[10]int[] a = new int[20] ,您还应该在 for 循环中更改它。因此,最好在 for 循环中使用数组的大小。而不是for(n=0; n< 10; n++)使用for(n=0;n<a.length;n++) .

a.length给出数组的大小。

因此您可以将代码更改为:

for (int n = 0; n < a.length; n++) 
{
a[n] = s.nextInt();
}
System.out.println("Sum: " + sumOfArray(a, a.length));

现在您无需担心在 for 循环中以及调用 sum() 时更改大小。 .

关于java - 错误: Cannot find symbol recursion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39175703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com