我编写了一个简单的求和函数,其中我将数组的值相加。我需要在我的函数中引用数组的值(在主类中)。我的代码如下所示:
public class myClass {
public static void main(String[] args) throws Exception {
int[] myArray = {0,1,2,3,4};
//Some random operations
}
public static int sum(int low,int up) {
int sum;
for (int k=low; k<=up; k++) {
sum +=myArray[k]; }
return sum;
}
}
但是我得到错误&#34; myArray无法解析为类型&#34;。为什么会出现此错误?我该如何解决?提前谢谢。
答案 0 :(得分:0)
myArray
目前是main
方法的本地方法。您可以将数组传递给sum
方法。像,
public static int sum(int[] myArray, int low, int up) {
int sum = 0; // <-- start at `0`.
for (int k=low; k<=up; k++) {
sum +=myArray[k];
}
return sum;
}
然后,当您致电myArray
时,您可以将sum
作为第一个参数传递。
答案 1 :(得分:0)
尝试像这样的参数添加数组myArray
:
public static int sum(int[] myArray, int low,int up) {
int sum=0;
for (int k=low; k<=up; k++) {
sum +=myArray[k]; }
return sum;
}
在main方法中,您可以调用以下方法:
int low=value1,up= value2;
sum(myArray, value1,value2)
答案 2 :(得分:0)
由于您在不同的范围中声明了myArray
,因此您收到了该错误。您在main方法中声明了myArray
,因此无法在sum
方法中直接访问它。您可以做的是在类myClass
中将其声明为静态变量。在静态上下文中声明变量将允许在整个类中访问它。它看起来像这样:
public class MyClass {
public static int[] myArray = {5, 2, 6, 82};
public static void main(String[] args) {
System.out.println(sum(0, 3));
}
public static int sum(int low, int high) {
int sum = 0;
for (int i = low; i <= high; i++) {
sum += myArray[i];
}
return sum;
}
}