2016-01-02 4 views
-3

Это рабочая программа, однако я не знаю, что здесь выполняется «return 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); 
    } 
} 
+0

Да, вся точка возврата так, что вы можете использовать функцию в других методах. Обратите внимание, что 'average' использует' sum', поэтому вам не нужно переписывать код. Кроме того, основной метод может использовать 'System.out.println (« Average: »+ average (4,3,6,1))» и делать все, что работает в одной крошечной строке кода. Возврат сообщает вашему коду, что «средний (4,3,6,1);» станет. Вызов этой функции будет «возвращать» значение, а значение в этом случае представляет собой сумму из 4 чисел, разделенных на 4 - '3.5' – user1274820

+1

Это похоже на домашнее задание или что-то в этом роде, но если вы пишете реальный код, вы, вероятно, передали бы «средний» массив и подсчитали количество элементов, чтобы он мог дать вам среднее значение для любого набора чисел. В C# это выполняется с помощью 'params int [] arguments'. Затем вы можете подсчитать количество элементов и делить на подсчет - я бы не написал функцию 'sum', так как это в значительной степени встроено в функциональность, хотя вы могли бы написать' sum' с помощью 'params' и выполнить тот же тип вещь. Похоже, это просто продемонстрировать функциональность в этом случае. – user1274820

+0

Я бы сбросил все слово 'number' и сделаю его очень коротким (например,' n1'). Вы также можете удалить «int answer = n1 + ...» и просто пропустить прямо, чтобы «вернуть n1 + n2 + n3 + n4;». В среднем вы могли бы написать «return sum (n1, n2, n3, n4) /4.0;», что довольно коротко. – user1274820

ответ

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)); 
} 
+0

Итак, значение, возвращаемое суммой, используется во втором методе? – Nebular

+0

Да, это точно. – user1274820

+0

Я вижу. Итак, если это правда, что они делают в параметре среднего? Кроме того, если я превращу их в переменную «ответ», как в моем исходном коде, куда они идут? просто пытаясь понять. – Nebular

Смежные вопросы