【发布时间】:2017-11-22 04:25:05
【问题描述】:
你会如何解释这个嵌套 for 循环的“else”部分?
我已经在底部进行了尝试,但是考虑到 a 已经定义,我正在努力弄清楚 else 部分的功能。 y(1,2,3,4) 的结果是 16,所以根据我的计算,向量在该步骤增加了 6 的值,因为其他步骤不成立。
y=function(a,b,c,d)
{
if(a>b){
while(b<d){
b=b+a
}
for(e in c(a,c,d)){
b=b-e
}}
else{
for(a in 1:c){
a=a+d
}}
if(b>c){
c= c*d + a-b}
return(sum(a,b,c,d))
}
y(1,2,3,4)
我的解释:
仅在 a > b 时有效(如果不是:跳到“其他步骤”) 继续将a添加到b,只要它不超过b(在它之前停止最后一步) 在 c(a=1, b=2, c=3) 中说 e,我们会做 (b - a - c - d) 或者技术上是 b-1,然后是 (b-1)-2,然后是 (b-3) )-3 b=be
只有当 a
第一个 if/else 循环后的下一步:只需在第一个循环后用 a,b,d,c 的最新值重新计算 c 对最终向量的所有元素求和
【问题讨论】: