有人可以解释为什么即使对长度为零的变量执行循环?例如
listFunction<-function(listinput)
{
for (i in 1:length(listinput))
{listinput[i]<-listinput[i]+1
print("googats")
}
listinput
}
listB<-c()
listFunction(listB)
[1] "googats"
[1] "googats"
> listB
NULL
为什么它迭代循环两次而不是根本不进入?
答案 0 :(得分:1)
Per official documentation,for loop
for循环的语法是
for ( name in vector ) statement1
其中vector可以是a 矢量或列表。对于向量中的每个元素,设置变量名称 到该元素的值,并评估statement1。在旁边 效果是循环后变量名仍然存在 总结并且它具有矢量的最后一个元素的值 评估循环。
因此,它会迭代每个元素。
在你的情况下,
for (i in 1:length(listinput))
{
listinput[i]<-listinput[i]+1
print("googats")
}
就像
for (i in 1:0)
{
listinput[i]<-listinput[i]+1
print("googats")
}
因为向量中有2个元素1
和0
,所以循环体将被迭代两次。