2016-09-25 1 views
0

Я пытаюсь отобразить два результата внутри одной и той же функции, код, который я пишу это следующим образом:Множественные возвращается в ту же функцию

myFun <- function(x,y,z){ 
    sum1 <- x+y 
    print("The first sum is:") 
    return(sum1) 

    sum2 <- y+z 
    print("The second sum is:") 
    return(sum2) 

} 

Однако, я только получить sum1 как выход. После этого блок sum2 никогда не выполняется.

В результате я получил это:

> myFun(2,3,4) 
[1] "The first sum is:" 
[1] 5 
> 

Что я делаю неправильно? Может кто-нибудь мне помочь?

Спасибо.

+1

'возвращение (список (сумма1, сумма2))'. Первая функция 'return' вырывается из функции. Если вы хотите вычислить оба варианта, используйте только один оператор возврата в конце или распечатайте, верните 'f (paste, sum1, sum2'), где' f' - это просто некоторая функция, которая определяет формат возврата печати –

+0

Проблема в том, что как только вы вызываете return, функция завершена. Если ваш язык поддерживает массивы, вы можете вернуть массив обоих возвращаемых значений. 'return ([sum1, sum2])' – Pachonk

+1

@Pachonk - язык R. –

ответ

1

Скопировано из моего комментария выше

return Первые перерывы из функции. Если вы хотите выполнить, и вернуть оба заявления, использовать только один оператор возврата в конце, например, return(list(sum1, sum2)) или напечатать, вернуть f(paste, sum1, sum2) где f только некоторая функция, которая определяет формат возврата печати.

1
myFun <- function(x,y,z){ 
sum1 <- x+y 
print("The first sum is:") 

sum2 <- y+z 
print("The second sum is:") 
return(sum2) 

} 

return (variable) возвращает переменную и завершает работу. Попробуйте приведенный выше.

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