欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-22 19:25:58
...

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

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

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

一、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"