Shell双重循环、图形排列及九九乘法表
2021/7/20 7:09:11
本文主要是介绍Shell双重循环、图形排列及九九乘法表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Shell双重循环、图形排列及九九乘法表
目录- Shell双重循环、图形排列及九九乘法表
- 一、双重循环
- 1. 双重循环概述
- 2. 双重循环结构
- 二、循环特殊操作
- 1. exit
- 2. break
- 3. return
- 4. continue
- 5. sleep
- 6. delay
- 三、Shell图形排列
- 1. 直线
- 2. 矩形
- (1)实心矩形
- (2)空心矩形
- 3.三角形
- (1)直角三角形
- (2)倒直角三角形
- (3)反三角
- (4)等腰三角形
- 4. 平行四边形
- 5. 梯形
- 6. 等腰梯形
- 7. 菱形
- 8. 可变菱形
- 9. 五角星
- 四、九九乘法表
- 一、双重循环
一、双重循环
1. 双重循环概述
双重循环需勋在两个及以上的自变量,一般用于多层循环判断中,比如将行和列设为两个自变量按一定规则顺序显示数据,可通过Shell脚本做出各种排列图形以及九九乘法表。
2. 双重循环结构
graph TD A{外层条件} --> B[外层语句1] B --> C{内层条件} C --> D[内层语句] D --> E[外层语句2] D --> |内层循环| C E --> |外层循环| A F[双重循环结构图]循环必须是有规律的递增或递减,脚本从上至下执行,在没有break、exit、sleep、continue等结束语句时,循环语句块会逐条执行。
内层循环是外层循坏的一条循环语句,当变量满足外层循环的条件时,就会进入外层循环执行外层循环语句,当变量满足内层循环的条件时,转而执行内层循环,只有当内层循环结束才会跳出内层循环,然后继续外层循环语句的执行。
二、循环特殊操作
1. exit
停止循环,直接退出执行脚本
2. break
跳出当前循环,默认为break 1,后面数字为跳出层数,例如break 2为跳出2层循环。
3. return
return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值
使用原则:
(1)函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码;
(2)退出状态码必须是0~255,超出时返回值将为除以256后的取余数。
4. continue
终止某次循环中的命令,但不会完全终止整个命令,而是直接跳过满足条件的循环,即满足条件不循环,转而循环不满足的条件
5. sleep
sleep休眠,单位为秒,将线程休眠规定时间后继续执行,sleep(10)为休眠10秒。
6. delay
增加延时时间,单位为0.4毫秒,即延时一秒为delay(250)。
三、Shell图形排列
1. 直线
#!/bin/bash for ((a=1; a<=20; a++)) #循环20次 do echo -n "*" #不换行连续输出* done echo "" #末尾换行
[root@localhost ~]# ./zhixian.sh ********************
2. 矩形
(1)实心矩形
#!/bin/bash for ((a=1; a<=5; a++)) #循环5次,设置行数 do for ((b=1; b<=8; a++)) #循环8次,设置列数 do echo -n "*" done echo “” done
[root@localhost ~]# ./4.sh ******** ******** ******** ******** ********
(2)空心矩形
#!/bin/bash for ((a=1; a<=5; a++)) do if [ $a -eq 1 -o $a -eq 5 ];then for ((b=1; b<=8; b++)) do echo -n "*" done echo "" else echo -n "*" for ((c=1; c<=6; c++)) do echo -n " " done echo "*" fi done
[root@localhost ~]# ./kong4.sh ******** * * * * * * ********
3.三角形
(1)直角三角形
#!/bin/bash for ((a=1; a<=6; a++)) do for ((b=1; b<=a; b++)) do echo -n "*" done echo "" done
[root@localhost ~]# ./3.sh * ** *** **** ***** ******
(2)倒直角三角形
#!/bin/bash for ((a=1; a<=6; a++)) do for ((b=6; b>=a; b--)) do echo -n "*" done echo "" done
[root@localhost ~]# ./dao3.sh ****** ***** **** *** ** *
(3)反三角
#!/bin/bash for ((a=1; a<=6; a++)) do for ((b=6; b>=a; b--)) do echo -n " " done for ((c=1; c<=a; c++)) do echo -n "*" done echo "" done
[root@localhost ~]# ./fan3.sh * ** *** **** ***** ******
(4)等腰三角形
#!/bin/bash for ((a=1; a<=9; a++)) do for ((b=9; b>=a; b--)) do echo -n " " done m=$[($a*2) - 1] for ((c=1; c<=$m; c++)) do echo -n "*" done echo "" done
[root@localhost ~]# ./dengyao3.sh * *** ***** ******* ********* *********** ************* *************** *****************
4. 平行四边形
#!/bin/bash for ((a=1; a<=6; a++)) do for ((b=6; b>=a; b--)) do echo -n " " done for ((c=1; c<=6; c++)) do echo -n "*" done echo "" done:::
[root@localhost ~]# ./pingxing4.sh ****** ****** ****** ****** ****** ******
5. 梯形
#!/bin/bash for ((a=1; a<=6; a++)) do for ((b=6; b>=a; b--)) do echo -n " " done for ((c=1; c<=6+$a; c++)) do echo -n "*" done echo "" done
[root@localhost ~]# ./tixing.sh ******* ******** ********* ********** *********** ************
6. 等腰梯形
#!/bin/bash for ((a=1; a<=6; a++)) do for ((b=6; b>=a; b--)) do echo -n " " done for ((c=1; c<=6+$a; c++)) do echo -n "*" done for ((d=1; d<=a; d++)) do echo -n "*" done echo "" done
[root@localhost ~]# ./dengyaotixing.sh ******** ********** ************ ************** **************** ******************
7. 菱形
#!/bin/bash for ((a=1; a<=9; a++)) do for ((b=8; b>=a; b--)) do echo -n " " done m=$[($a*2) - 1] for ((c=1; c<=$m; c++)) do echo -n "*" done echo "" done for ((e=8; e>=1; e--)) do for ((f=8; f>=e ; f--)) do echo -n " " done n=$[($e*2) - 1] for ((g=1 ; g<=$n ; g++)) do echo -n "*" done echo "" done
[root@localhost ~]# ./lingxing.sh * *** ***** ******* ********* *********** ************* *************** ***************** *************** ************* *********** ********* ******* ***** *** *
8. 可变菱形
#!/bin/bash read -p "请输入数字:" num for ((a=1; a<=num; a++)) do for ((b=$num-1; b>=a; b--)) do echo -n " " done m=$[($a*2) - 1] for ((c=1; c<=$m; c++)) do echo -n "*" done echo "" done for ((e=$num-1; e>=1; e--)) do for ((f=$num-1; f>=e ; f--)) do echo -n " " done n=$[($e*2) - 1] for ((g=1 ; g<=$n ; g++)) do echo -n "*" done echo "" done
[root@localhost ~]# ./lingxing.sh 请输入数字:5 * *** ***** ******* ********* ******* ***** *** * [root@localhost ~]# ./lingxing.sh 请输入数字:8 * *** ***** ******* ********* *********** ************* *************** ************* *********** ********* ******* ***** *** *
9. 五角星
#!/bin/bash for((i=0; i<10; i++)) { for ((j=1; j<20; j++)) { echo -n " " } for ((j=10; j>i; j--)) { echo -n " " } for ((j=0; j<i*2+1; j++)) { echo -n "*" } echo "" } for ((i=0; i<6; i++)) { for ((j=0; j<i*3; j++)) { echo -n " " } for ((j=60; j>i*6; j--)) { echo -n "*" } echo "" } for ((i=0; i<5; i++)) { for ((j=17; j>i; j--)) { echo -n " " } for ((j=0; j<25+i*2; j++)) { echo -n "*" } echo "" } for ((i=1; i<=5; i++)) { for ((j=12; j>=i; j--)) { echo -n " " } for ((j=15; j>=i*3; j--)) { echo -n "*" } for ((j=0; j<=i*8; j++)) { echo -n " " } for ((j=15; j>=i*3; j--)) { echo -n "*" } echo "" }
[root@localhost ~]# ./5jiao.sh * *** ***** ******* ********* *********** ************* *************** ***************** ******************* ************************************************************ ****************************************************** ************************************************ ****************************************** ************************************ ****************************** ************************* *************************** ***************************** ******************************* ********************************* ************* ************* ********** ********** ******* ******* **** **** * *
四、九九乘法表
#!/bin/bash for ((a=1; a<=9; a++)) do for ((b=1; b<=a; b++)) do sum=$[$a * $b] echo -n "$a*$b=$sum " done echo "" done
[root@localhost ~]# ./99.sh 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
这篇关于Shell双重循环、图形排列及九九乘法表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Maven资料入门指南
- 2024-11-16Maven资料入门教程
- 2024-11-16MyBatis Plus资料:新手入门教程与实践指南
- 2024-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南
- 2024-11-16MyBatis资料详解:新手入门与初级实战指南
- 2024-11-16MyBatisPlus资料:初学者入门指南与实用教程
- 2024-11-16MybatisPlus资料详解:初学者入门指南
- 2024-11-16MyBatisX资料:新手入门与初级教程
- 2024-11-16RESTful接口资料详解:新手入门指南