多个返回

问题描述:

我想显示相同的函数内部两个结果,即我写的代码如下:多个返回

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. –

从我的评论复制上述

第一return跳出功能。如果要执行和返回这两个语句,只使用一个return语句结尾,如 return(list(sum1, sum2)) 或打印,返回 f(paste, sum1, sum2) 其中f只是一些功能,它定义了打印返回格式。

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)返回变量并退出。 试试上面的一个。