我正在尝试使用while循环编写程序:
n=50
sum=array(0,n)
sum[1]=0
for(k in 1:n)
{
sum[k+1]=sum[k]+k
while((sum[k+1]-sum[k])<10)
{
print(sum[k+1])
k=k+1
}
}
sample=data.frame(Sum=sum) sample
显示:
Error in while ((sum[k + 1] - sum[k]) < 10) { :
missing value where TRUE/FALSE needed
有人能说出这段代码有什么问题吗?
答案 0 :(得分:2)
在第二次迭代sum[k+1] = NA
中,因为它将被评估为:
(sum[2+1]-sum[1])<10
其中sum[2+1] = sum[3]
为NA
。因此(sum[k+1]-sum[k])<10
不会被评估为 TRUE / FALSE 之一。
Iteration (k) | sum[k+1]-sum[k]
--------------+------------------
1 | sum[2] - sum[1] They're both known
2 | sum[3] - sum[2] What is sum[3]? (NA)