早教吧作业答案频道 -->数学-->
LINUXshell遇到的问题.我想计算1+2+3+4.到100我想计算1+2+3+4.到100,用while写的.麻烦看下.我不懂的地方是那个r的变量、#!/bin/bashr=0i=0while["$i"!="100"]doi=$(($i+1))r=$(($r+$i))doneecho$rR的
题目详情
LINUX shell 遇到的问题. 我想计算1+2+3+4.到100
我想计算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 是怎么获取的.谢谢
我想计算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 是怎么获取的.谢谢
▼优质解答
答案和解析
这里 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
这里没有用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
看了 LINUXshell遇到的问...的网友还看了以下:
急救!若a>0,b>0,且a+b=c.求证:(1)当r>1时a^r+b^r<c^r;(2)当r<1 2020-04-05 …
已知弧长和弦长求半径弧长a,弦长b,求半径r,圆心角n?公式12πr*n/360=an=360a/ 2020-05-13 …
若2/2y^2+3y+7的值为1/4,求1/4y^2+6y-1的值.我想要知道为什么,以及怎么解. 2020-05-16 …
n为正整数,a-2b=—1,求3(a-2b)^2n+2(2b-a)^2n-1+5(a-2b)^2n 2020-06-03 …
定义在(-1,1)上的函数f(x)-f(y)=f((x-y)/(1-xy)),当X∈(-1,0), 2020-06-09 …
就一句Java代码读不懂请高人帮忙解释下publicstaticintf(intn){if(n== 2020-06-12 …
数学的充要条件判定出了很大的问题,例如A可以推出B,B不可以推出A,觉得A是B的充分不必要条件,可 2020-06-27 …
求数列1+1/3+1/5+.+1/2n-1的和我现在是高中唉 2020-06-30 …
已知a^4+a³+a²+a+1=0,求a^-1990+a^-2000+1的值我算到这就不会了... 2020-07-09 …
一个例题.(x-1/x)^9展开式通项.Tr+1=c9r(9在下,r在上),x^9-r*(-1/x 2020-07-09 …