shell小实验详解1——for循环语句实现求奇数和与偶数和+小技巧使用!!!

问:提示用户输入一个小于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

你可能感兴趣的:(shell,centos,linux)