2016-09-25 228 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

'return(list(sum1,sum2))'。第一個'return'突破了功能。如果你想計算兩者,只在最後使用一個return語句,或者打印,返回'f(paste,sum1,sum2'),其中'f'只是定義打印返回格式的一些函數。 –

+0

問題是一旦你打電話回來,功能就結束了。如果你的語言支持數組,你可以返回一個包含兩個返回值的數組。 'return([sum1,sum2])' – Pachonk

+1

@Pachonk語言是R. –

回答

1

從我的評論複製上述

第一return跳出功能。如果要執行和返回這兩個語句,只使用一個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)返回變量並退出。 試試上面的一個。