引用main函数中的变量 - Java

时间:2016-01-25 23:03:23

标签: java function variables

我编写了一个简单的求和函数,其中我将数组的值相加。我需要在我的函数中引用数组的值(在主类中)。我的代码如下所示:

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;。为什么会出现此错误?我该如何解决?提前谢谢。

3 个答案:

答案 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;
    }
}