5.4 循环结构之for

  • for结构
for 变量 in 范围/数组;dostatement;
done;
  • for写法
# for练习
# 获取1到10的和:写法1
sumn=0;
for n in 1 2 3 4 5 6 7 8 9 10;dosumn=$((sumn+n));
done;
echo "获取1到10的和1="$sumn;# 获取1到10的和:写法2
sumn=0;
for n in {1..10};dosumn=$((sumn+n));
done;
echo "获取1到10的和2="$sumn;# 获取1到10的和:写法3
sumn=0;
for ((n=1;n<=10;n++));dosumn=$((sumn+n));
done;
echo "获取1到10的和3="$sumn;# 获取1到10的和:写法4
sumn=0;
for n in $(seq 10);do      #i in $(seq n)等价于((i=1;i<=n;i++))sumn=$((sumn+n));
done;
echo "获取1到10的和4="$sumn;
#seq 两个参数
sumn=0;
for n in $(seq 1 10);do    #i in $(seq n m)等价于((i=n;i<=m;i++))sumn=$((sumn+n));
done;
echo "获取1到10的和4="$sumn;
#seq 三个参数
sumn=0;
for n in $(seq 1 1 10);do    #i in $(seq n k m)等价于((i=n;i<=m;i+=k))sumn=$((sumn+n));
done;
echo "获取1到10的和4="$sumn;
  • 99乘法表
#99乘法表
echo "99乘法表1";
for ((i=1;i<=9;i++));dofor ((j=1;j<=i;j++)); doprintf $i"*"$j"="$((i*j))"  ";if [ $((i*j)) -lt 10 ];thenprintf " ";fi;done;echo "";
done;
#99乘法表
echo "99乘法表2";
for ((i=1;i<=9;i++));dofor ((j=9;j>=1;j--)); doif [ $j -le $i ];thenprintf $i"*"$j"="$((i*j))"  ";if [ $((i*j)) -lt 10 ];thenprintf " ";fi;elseprintf "        ";fi;done;echo "";
done;
  • 获取1到100内质数的和
echo "求1到100内质数的和》》》》1";
sumn=0;
for ((n=1;n<=100;n++));do#判断当前n是不是质数b=1;#定义变量作为标签#定义一个变量让其从2跑到n-1 循环判断是否出尽for ((m=2;m<n;m++)) doif [ $((n%m)) -eq 0 ];thenb=$((b+1));break;fi;done;if [ $b -eq 1  -a $n -ne 1 ];thenecho $n"是质数!";sumn=$((sumn+n));fi;
done;
echo "求1到100内质数的和1="$sumn;echo "求1到100内质数的和》》》》2";
sumn=0;
for ((n=1;n<=100;n++));do#判断当前n是不是质数#定义一个变量让其从2跑到n-1 循环判断是否出尽for ((m=2;m<n;m++)) doif [ $((n%m)) -eq 0 ];thenbreak;fi;done;if [ $m -eq $n ];thenecho $n"是质数!";sumn=$((sumn+n));fi;
done;
echo "求1到100内质数的和2="$sumn;
echo "------------for练习1:99乘法表---------------";
for  ((i=1;i<=9;i++));dofor  ((j=1;j<=i;j++));doprintf $i"*"$j"="$((i*j))"  ";if [ $((i*j)) -lt 10 ];thenprintf " ";fi;done;echo "";
done;
echo "------------for练习2:99乘法表---------------";
for  ((i=1;i<=9;i++));dofor  ((j=1;j<=9;j++));doif test $i -le $j ; thenprintf $i"*"$j"="$((i*j))"  ";if [ $((i*j)) -lt 10 ];thenprintf " ";fi;elseprintf "        "; fi;done;echo "";
done;echo "------------for练习3 判断一个数是不是质数------------------------------";
#read -p "请输入一个数字:" n;
for ((n=1;n<=100;n++)); do# 判断当前n是不是质数k=1;for  ((m=2;m<n;m++));doif test $(( n % m )) -eq 0 ;thenk=$[k+1];break;fi;done;if [ $k -eq 1 -a $n -gt 1 ]; thenecho $n"是质数!";#else# echo $n"不是质数!";fi;
done;echo "------------for练习3 判断一个数是不是质数------------------------------";
#read -p "请输入一个数字:" n;
for ((n=1;n<=100;n++)); do# 判断当前n是不是质数k=1;for  ((m=2;m<n;m++));doif test $(( n % m )) -eq 0 ;thenk=$[k+1];break;fi;done;if [ $k -eq 1 -a $n -gt 1 ]; thenecho '$n是质数!';# ""中的$会被解析 ''中的$不会被解析echo "$n是质数!";#else# echo $n"不是质数!";fi;
done;

5.5 循环结构之while

  • while格式
while 判断语句; dostatement;
done;
  • 求质数
# 使用while获取1到100内位数上含有1的所有质数的平均值
sumn=0;geShu=0;
n=1;
while [ $n -le 100 ]; do#判断是否含有1n1=$((n%10));n2=$((n/10%10));n3=$((n/100));if [ $n1 -eq 1 -o $n2 -eq 1 -o $n3 -eq 1 ];then#判断当前n是不是质数m=2;while [ $m -lt $n ];doif [ $((n%m)) -eq 0 ];thenbreak;fi;m=$((m+1));done;    if [ $m -eq $n ]; thensumn=$((sumn+n));geShu=$((geShu+1));echo $n"是满足条件的数字!";fi;        fi;n=$((n+1));
done;
echo "1到100内位数上含有1的所有质数的平均值="$((sumn/geShu));
echo $sumn":"$geShu"1到100内位数上含有1的所有质数的平均值="$(echo "scale=2;"$sumn"/"$geShu|bc);
echo $sumn":"$geShu"1到100内位数上含有1的所有质数的平均值="$(echo "scale=2;$sumn/$geShu"|bc);n=1;
echo $n"---";  #获取变量的值$n在字符串中也可以解析
echo "---$n---";
  • 密码输入
# 输入三位数密码 只有5此机会:如果不是123 密码错误
ciShu=0;
m=0;
while [ $ciShu -lt 5 ];dociShu=$((ciShu+1));read -p "请输入一个三位数:" n;if test $n -eq 123;thenm=$((m+1));break;fi;
done;
if [ $m -eq 1 ];thenecho "经过$ciShu后得到正确密码!";
elseecho "输入次数5次了还没有正确!!";
fi;
  • 获取完数
echo "------------while练习 获取1到10000内所有的完数:因子之和等于此数:6 ------------------------------";
n=1;
while test $n -lt 1000 ; do# 判断当前n是不是完数sumn=0;#让变量m从1跑到n-1m=1;while test $m -lt $n;do#判断当前m是不是n的因子if [ $((n % m)) -eq 0 ];thensumn=$((sumn+m));fi;# 迭代语句m=$[m+1];done;#m跑完 通过sumn是不是等于n来判断n是不是完数if [ $n -eq $sumn ];thenecho "$n是完数!"fi;# 迭代语句n=$((n+1));
done;

linux系列(十):shell循环结构、for、while相关推荐

  1. LABVIEW_课堂笔记 随机(十)循环结构

    目录 循环结构 For循环 建立For循环结构需要以下几个步骤: While循环 ​创建While循环需要以下几个步骤: 循环结构数据通道与自动索引 ​移位寄存器 反馈节点 循环结构 LabVIEW ...

  2. Linux中Shell循环结构for用法笔记

    Shell中可以使用for做固定次数循环的处理.常见的for循环用法主要有以下几种: 1.带列表的for循环 语法结构: for item in (list) do command done 示例: ...

  3. Linux系列教程——Shell、Linux文件管理

    文章目录 Shell 1.什么是Bash shell(壳) 2.Bash Shell能干什么? 3.平时我们如何使用Shell呢? 4.Shell提示符 5.Shell基础语法 2.Bash Shel ...

  4. Linux编程 23 shell编程(结构化条件判断 命令if -then , if-then ... elif-then ...else,if test)...

    一.概述 在上一篇里讲到了shell脚本,shell按照命令在脚本中出现的顺序依次进行处理,对于顺序操作已经足够了,但许多程序要求对shell脚本中的命令加入一些逻辑流程控制,这样的命令通常叫做 结构 ...

  5. 【Linux】:shell循环语句

    运行Shell脚本有两种方法: 1.vi test.sh #! /bin/bash #编写内容 运行sh test.sh 2.chmod +x ./test.sh #脚本具有执行权限 ./test.s ...

  6. 手把手教你写shell脚本——shell循环结构

    一 条件语句 1.1 if-then #!/bin/bash if root thenecho "hello" fi 如果命令运行成功(退出码为0),则then部分的命令被执行 1 ...

  7. shell循环结构之while循环

    while循环 1) while CONDITION; do statement statement <改变循环条件真假的语句> done 编写脚本,计算1---100的和 #!/bin/ ...

  8. LINUX系列:Shell命令

    Shell命令 一.文件路径 1. ls 基本查看 查看文件夹内的所有的内容,默认情况下不能看到隐藏文件 序号 选项 作用 1 -a 查看文件夹内所有的内容,包括隐藏的文件,隐藏文件时文件名前带着&q ...

  9. linux系列:shell将字符串分割成数组

    #!/bin/bash str="aaa,bbb,ccc,ddd"OLD_IFS="$IFS" IFS=","arr=($str)IFS=& ...

最新文章

  1. python-字典dict、去除重复set
  2. 教程-Win7极速优化20项
  3. 游戏开发基础:判断碰撞(转摘)
  4. 部署yum仓库自动挂载服务
  5. cx+oracle+sql含中文,sql 判断字段值是是否包含中文字符
  6. 如何使用 TRACERT 解决 Windows 中的 TCP/IP 问题
  7. javascript时间戳和日期字符串相互转换代码
  8. CSS 二十年发展简史
  9. pyqt 槽任意参数_根据效果及设计参数选择合适的洗墙灯
  10. 读取android项目assets目录下的txt文件.
  11. python3.4.3如何获取文件的路径
  12. 第二次作业:硬币游戏——代码分析与改进
  13. 在B/S系统中引入定时器的功能
  14. 图解DotNet框架之三:System.IO
  15. 管理感悟:如何看待培训
  16. html compiler注册机,XXX计算器1.8注册分析和注册机代码
  17. 手机网页form表单样式_超全面!13种表单样式的设计方式都在这了
  18. 关于鸡兔同笼的python程序_python解决鸡兔同笼问题的方法
  19. Qt开发——圆面积计算器
  20. pentaho-server-ce-7.0安装配置说明

热门文章

  1. Pytorch 如何计算三角函数
  2. 【04】制作一个鸿蒙应用-【先写一下最基本的前端代码】-优雅草科技伊凡
  3. 听说今天是七夕,那我们写一个网页开发来庆祝一下
  4. 『重磅』免费无限量下载知网/万方/维普等数据库文献的正规渠道
  5. 什么是物联网边缘计算网关?物联网边缘计算网关的实际应用。
  6. vue引入51la流量监控
  7. web前端 - Vue常见问题汇总及解决方案
  8. 阿里云王志坤:强劲可靠、无处不在的云,为创新保驾护航
  9. 抓取国家统计局网站上的最新县及县以上行政区划代码,并保存成json格式的文件
  10. matlab 色温图,技术:图文教你了解色温及如何选择色温