LINUX shell 遇到的问题。 我想计算1+2+3+4.到100

我想计算1+2+3+4.到100,用while写的。麻烦看下。我不懂的地方是那个r的变量、#!/bin/bashr=0i=0while["$i"!="100"]doi=$... 我想计算1+2+3+4.到100,用while 写的。麻烦看下。 我不懂的地方是那个r的变量、
#!/bin/bash
r=0
i=0
while [ "$i" != "100" ]
do

i=$(($i+1))
r=$(($r+$i))
done
echo $r
R的变量也是循环100次么。 这里没有定义循环的次数for, R 是怎么获取的。谢谢
展开
 我来答
百度网友5311d79
2011-10-03 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3249万
展开全部
这里 i 是当做计数器用的,每次循环递增1。r 是当做累加器用的,将 i 的值进行累加。
这里没有用for循环,而是用的while循环,其实是一样的,而且while循环更为通用(sh不支持for循环)。
循环的次数也是有定义的,while [ "$i" != "100" ]这句就是定义,只要 i 没递增到100,就会一直循环。其实这句从语义上来说是不对的,这里是整数的比较而不是字符串的比较,所以比较符应该用-ne而不要用!=,即,应该写成 while [ $i -ne 100 ]

下面是个更为简单的实现,你可以体会一下(shell中的变量其实不需要初始化,自有其默认值)。
#!/bin/bash
for i in {1..100}
do
r=$((r+i))
done
echo $r
一壶仙
2011-10-03 · TA获得超过3285个赞
知道答主
回答量:36
采纳率:0%
帮助的人:32.2万
展开全部
while [ "$i" != "100" ] //i 为循环次数,即达到100跳出
do

i=$(($i+1)) // 这里是次数循环的控制,整个程序循环一百次
r=$(($r+$i)) //这里r=r+i,所以应该就是你计算的总和,在c语言常用sum表示,
done
希望帮到你~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿白·33442
2011-10-03
知道答主
回答量:10
采纳率:0%
帮助的人:7.1万
展开全部
(1+100)乘50
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangtao9999
2011-10-03 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:44%
帮助的人:8241万
展开全部
循环为什么非要 for ?
你看 r 干什么,看 i 变量的原理就明白了。r 不过是最终的结果而已。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式