理解方法返回

时间:2016-01-02 05:45:40

标签: java

这是一个工作程序,但是我不知道这里完成了什么“返回答案”,只知道需要返回的东西。是不是有办法在下一个方法中使用“answer”,所以number1-4做不必重新输入。

public class AverageOfGivenNumbers {

    // implement 
    public static int sum(int number1, int number2, int number3, int number4) {
         int answer = number1 + number2 + number3 +number4;
         return answer;
    }

    public static double average(int number1, int number2, int number3, int number4) {
        double average = sum(number1,number2,number3,number4) / 4.0;
        return average;
    }

    public static void main(String[] args) {
        double result = average(4, 3, 6, 1);
        System.out.println("Average: " + result);
    }
}

1 个答案:

答案 0 :(得分:2)

这看起来像是家庭作业,所以很可能只是为了证明传递参数。

正如我在评论中所说,你可以缩短所有内容:

public class AverageOfGivenNumbers {
    public static int sum(int n1,int n2,int n3,int n4) {
         return n1+n2+n3+n4;
    }
    public static double average(int n1,int n2,int n3,int n4) {
        return sum(n1,n2,n3,n4)/4.0;
    }
    public static void main(String[] args) {
        System.out.println("Average: "+average(4,3,6,1));
    }
}

当我们使用return时,我们会说一个函数在执行时会评估什么。

这在我们使用average(4,3,6,1)的主要方法中显示。

它成为(或,"返回")3.5,这是我们在打印时看到的内容。

Average: 3.5

它没有显示Average: average(4,3,6,1),因为average(4,3,6,1)评估为3.5 - 我们返回的值。

同样,当我们说return sum(4,3,6,1)/4.0时,它会变为return 14/4.0

您也可以在java中使用它来传递无限制的参数:

public static int sum(int... args) {
    int sum = 0;
    for (int arg : args)
        sum += arg;
    return sum;
}
public static double average(int... args) {
     return (sum(args)/(float)args.length);
}
public static void main(String []args){
    System.out.println("Average: "+average(4,3,6,1));
}