linux用while-until-for三种循环结构分别计算1+2+3...+100的值并输出----shell脚本初学习

while-until-for三种循环结构分别计算1+2+3+…+100的值并输出

$变量替换 (引用一个变量的内容)。
一个变量名前面加一个$字符前缀表示引用该变量的内容。

linux用while-until-for三种循环结构分别计算1+2+3...+100的值并输出----shell脚本初学习_第1张图片

一、until结构

这个结构在循环的顶部判断条件,并且如果条件一直为false那就一直循环下去(与while相反)。

until [condition-is-true]
do
command...
done 

例:

sum=0
num=0
#直到num值等于101之后跳出循环
until test $num -eq 101
do
#下面两个均为反斜杠
sum=`expr $sum + $num`
num=`expr $num + 1`
done
echo "the result is $sum"

二、for循环

对代码块的操作是构造组织shell脚本的关键, 循环和分支结构为脚本编程提供了操作代码块的工具。list中的参数允许包含通配符。如果do和for想在同一行出现,那么在它们之间需要添加一个“;”。

for arg in [list] 
这是一个基本的循环结构,它与C的for结构有很大不同。
for arg in [list]
do
command(s)... 
done 

例:

sum=0#计算 的和
i=0#定义一个累计额变量
for((;i<=100;i++))
do
#依次累加
sum=$(($sum+i))
done
#输出结果
echo "the result of "1+2+3+...+100" is===> $sum"

三、while循环
这种结构在循环的开头判断条件是否满足,如果条件一直满足,那就一直循环下去(0为退出码[exit status]),与for 循环的区别是,这种结构适合用在循环次数未知的情况下。

	while [condition]
	do
	command... 
	done 
	和for循环一样,如果想把do和条件放到同一行上还是需要一个“;”。
	while [condition] ; do 

方法1

sum=0
i=0
while((i<=100))
do
sum=$(($sum + $i))
i=$(($i + 1))
done
echo "the result of "1+2+3+...+100" is===> $sum"

法2

s=0
i=0
while [ $i != 100 ]
do

        i=`expr $i + 1`
        s=`expr $s + $i`
done
echo "the result of "1+2+3+...+100" is===>  $s"

法3

s=0
i=0
#i的值只要不等于100就会一直循环
while test $i -ne 100
do

        i=`expr $i + 1`
        s=`expr $s + $i`
done
echo "the result of "1+2+3+...+100" is===>  $s"

你可能感兴趣的:(linux学习)