如何退出使用带有不会弄乱数学的字符的数字的while循环

安德鲁·施韦泽

我有一个脚本可以让用户输入他们想要的任意数量的数字,直到他们按下“q”。现在我让它工作了,但它需要 q 并在其他数字应该被使用的数学中使用它。它还使用它来显示最高或最低的数字。

total=0
count=0
largest=num
smallest=num
while [ "$num" != "q"
do
      echo "Enter your numbers when you are done enter q"
      read num
      total=`expr $total + $sum`
      count=`expr $count + 1`
      if [ "$num" > "$largest" ]
            then
                   largest=$num
      fi
      if [ "$num" < "$smallest" ]
      then
                   smallest=$num
      fi
done
avg=`expr $total / $count`
echo "The largest number is: $largest"
echo "The smallest number is: $smallest"
echo "The sum of the numbers is: $total"
echo "The average of the numbers is: $avg"
切普纳

在尝试将其用作数字之前,您不会检查它的第一个值是否num为“q”。最简单的方法是编写一个带有显式break;的“无限”循环这避免了需要两个单独的read命令。

>and<用于字符串比较(与 一起使用时需要转义[);使用-gt-lt代替。

您也不需要expr用于整数运算。对于平均值,您需要使用bc(或其他一些可以进行浮点运算的程序)。

total=0
count=0
largest=
smallest=

while : ; do
  echo "Enter your numbers when you are done enter q"
  read num
  [ "$num" = q ] && break

  total=$(($total + $sum))
  count=$(($count + 1))
  if [ -z "$largest" ] || [ "$num" -gt "$largest" ]; then
    largest=$num
  fi
  if [ -z "$smallest" ] ||  [ "$num" < "$smallest" ]; then
    smallest=$num
  fi
done

# Avoid division by 0 and meaningless statistics if
# no numbers are entered. 
if [ "$count" -gt 0 ]; then
  avg=$( echo "$total / $count" | bc )
  echo "The largest number is: $largest"
  echo "The smallest number is: $smallest"
  echo "The sum of the numbers is: $total"
  echo "The average of the numbers is: $avg"
fi

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果内循环失败,如何从外循环退出使用批处理脚本

来自分类Dev

使用带有 getline 的嵌套 while 循环时,内部 while 循环不会运行多次

来自分类Dev

While循环不会退出Java

来自分类Dev

JavaScript不会退出while循环

来自分类Dev

代码不会退出 while 循环

来自分类Dev

C - while 循环不会退出

来自分类Dev

退出使用块

来自分类Dev

退出使用 :? 在 bash

来自分类Dev

如何使用户退出while循环

来自分类Dev

如何使用条件测试退出while循环?

来自分类Dev

使用读取系统调用时,While 循环不会退出

来自分类Dev

如何退出while循环?

来自分类Dev

如何退出while循环

来自分类Dev

如何删除.0而不弄乱数字10

来自分类Dev

如何使用带有onTouch函数的while循环?(安卓)

来自分类Dev

如何在没有字符串或整数运算的情况下使用While循环反转数字?

来自分类Dev

如何在条件表达式中正确退出带有 'cin' 的 while 循环?(C++,CLion)

来自分类Dev

要求时,Python While循环不会退出

来自分类Dev

程序不会退出do-while循环

来自分类Dev

使用带有while循环的字典

来自分类Dev

使用带有while循环的if语句?

来自分类Dev

在带有Bookdown(xelatex)的数学模式下使用Unicode字符

来自分类Dev

While循环内while循环无济于事。不会退出

来自分类Dev

如何正确退出while循环?

来自分类Dev

使用带有while循环的scanf输入两个单独的字符串

来自分类Dev

带有数学、列表、偶数、奇数、平方的 while 和 for 循环

来自分类Dev

带有子字符串条件的Bash while循环

来自分类Dev

带有验证的 while 循环中的输入字符

来自分类Dev

如何在R中使用带有非数字索引的循环

Related 相关文章

热门标签

归档