while循环概述
while循环也被称为“当”型循环。即当条件为真时,执行循环体中,否则执行循环体后的其它语句(也可能没有)。在R语言中,while循环的语法格式如下:
while(cond){expr}
其中,cond是一个逻辑条件表达式,其值应为TRUE或FALSE;expr是循环体中的语句,即当cond条件为TRUE时要执行的表达式或若干语句。
下面以几个经典的例子来说明while循环的具体使用方法。
输出向量中元素
x
i
n
while( i <= n) #i<=n时循环
{
print(x[i]) #输出x中第i个元素
i
}
这个例子中先定义了一个向量x,i为循环计数,n为向量的长度(元素的个数),循环体中输出后再使i加1,当i<=n时,反复执行循环体,当i>n时,则退出循环体。
输出1~200之间的奇数和及偶数和
sum.odd
sum.even
i
while(i<=100)
{
if(i%%2==0)
sum.even = sum.even + i
else
sum.odd = sum.odd + i
i = i + 1
}
print(paste("奇数和为:" , sum.odd))
print(paste("偶数和为:" , sum.even))
代码中的%%运算符是求模运算,即求两个数相除后的余数。我们知道,偶数除以2后,余数为0,奇数除以2后余数不为0(余数为1),则我们可以使用这个特点来判断一个数是偶数还是奇数。是偶数的话,我们把其加到sum.even中,否则加到sum.odd中,最后将其输出。
求1~100之间所有整数的和
i
sum
while( i <= 100)
{
sum
i
}
print(sum) #输出和
这里先定义了一个计数变量i,又定义了一个保存和的变量sum,在循环体中,每次将i加入sum中,并使i加1。当i<=100时,执行循环体,否则跳出循环执行循环体后面的语句:print(sum)。
求Fibonacci数列的前N项
i
N
F
F[1]
while(i <= N)
{
F[i]
i
}
print(F)
求斐波那契数列的前n项是编程语言中较经典的例子。这里的i是表示第几项,这里从第3项开始。斐波那契数列的前2项都是1,从第三项开始,每项是前两项的和,利用这一特点递归求其它项。
如果你有更好的算法,更好的例子,欢迎欢迎留言告诉每个人。
欢迎关注本号,本号定期更新R语言方面的文章,内容由浅入深,由基本语法到具体的数据分析应用。希望你能喜欢。