问:提示用户输入一个小于100的整数,求出1到该数的奇数和与偶数和
一、奇偶各自循环
#!/bin/bash
read -p "请输入一个小于100的整数:" num //read -p 提示交互信息,变量值由用户键盘输入
sum1=0 //初始值定为0
sum2=0
if [[ $num -ge 1 && $num -lt 100 ]];then //当输入数大于等于1小于100时
for ((i=0; i<=$num; i+=2)) //初始值为0,每循环一次,i加2,为偶数
do
let sum1=$sum1+$i //每循环一次,总和加i,总和为偶数和
done
echo "1到$num的偶数和为$sum1" //输出偶数和
for ((n=1; n<=$num; n+=2)) //初始值为1,每循环一次,n加2,为奇数
do
let sum2=$sum2+$n //每循环一次,总和加n,总和为偶数和
done
echo "1到$num的奇数和为$sum2" //输出奇数和
else
echo "输入错误" //输入别的不符合要求的内容,提示错误
$0 //程序重新开始
fi
运行结果
[root@host opt]# ./num3.sh
请输入一个小于100的整数:6
1到6的偶数和为12
1到6的奇数和为9
[root@host opt]# ./num3.sh
请输入一个小于100的整数:999
输入错误
请输入一个小于100的整数:ii
输入错误
请输入一个小于100的整数:77
1到77的偶数和为1482
1到77的奇数和为1521
小技能:
整数运算:
1.i=$( expr $a \* $b )
2.i=$(( $a * $b ))
3.i=$[ $a * $b ]
4.let i=$a*$b
缩写:
缩写 | 扩展 |
---|---|
i++ | i=$[ $i +1 ] |
i– | i=$[ $i -1 ] |
i+=2 | i=$[ $i +2 ] |
二、 循环中判定奇偶
#!/bin/bash
read -p "请输入1-100的整数:" num
sum1=0
sum2=0
if [[ $num -ge 1 && $num -lt 100 ]];then
for (( i=1; i<=$num; i++ )) //初始值为1,每循环一次加1,历遍从1到num的所有值
do
let m=$i%2 //用取余的方法判定是奇数还是偶数
if [ $m -eq 0 ];then //取余为0,为偶数
let sum1=$sum1+$i //偶数依次相加
else
let sum2=$sum2+$i //取余为1,为奇数,奇数依次相加
fi
done
echo "1到$num的偶数和为$sum1" //输出偶数和
echo "1到$num的奇数和为$sum2" //输出奇数和
else
echo "输入错误,请重新输入"
$0
fi
运行结果
[root@host opt]# ./num2.sh
请输入1-100的整数:kk
输入错误,请重新输入
请输入1-100的整数:199
输入错误,请重新输入
请输入1-100的整数:6
1到6的偶数和为12
1到6的奇数和为9