Shell实例:for循环语句实现求奇数和与偶数和——实验+解析,超详细!!!

时间:2020-8-27 作者:admin


问:提示用户输入一个小于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
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。