【shell循环控制语句、嵌套循环-06】

一、循环控制语句:break continue

break语句是退出循环。
continue语句是退出本次循环,可以继续下一次循环。
break 退出码语句是退出程序
在这里插入图片描述

二、嵌套循环

面试题1:打印99乘法表

[root@manager day5]# cat 99.sh 
#!/bin/bash
#*************************************************************
#Author: pyy
#Date:  2020-06-22
#FileName:      99.sh
#*************************************************************
#打印99乘法表

for i in `seq 9`
#for ((i=1;i<=9;i++))
do
	for j in `seq 9`
	#for ((j=1;j<=9;j++))
	do
		if [ $j -le $i ]
		then			
			sum=$(($i*$j|bc))
			echo -n  "$i * $j = $sum  "
		fi
	done
	echo " "
done
[root@manager day5]# sh 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  

面试题2:有1 2 3 4四位数,任意组合有多少种互不相同且无重复的三位数字,分别是什么?
解析:一共有4*3*2=24种组合。因为是三位数,所以是三次循环;因为是四个数字,所以每次循环循环四次,并且最后要判断三个数都不相同

[root@manager day5]# cat threenum.sh 
#!/bin/bash
#*************************************************************
#Author: pyy
#Date:  2020-06-22
#FileName:      threenum.sh
#*************************************************************
#有1 2 3 4四位数,任意组合有多少种互不相同且无重复的三位数字,分别是什么?
for x in `seq 4`
do
	for y in `seq 4`
	do
		for z in `seq 4`
		do
			[ $x -ne $y -a $x -ne $z -a $y -ne $z ] && echo $x$y$z
		done
	done
done
[root@manager day5]# sh threenum.sh
123
124
125
132
134
135
142
143
145
213
214
215
231
234
235
241
243
245
312
314
315
321
324
325
341
342
345
412
413
415
421
423
425
431
432
435

面试题3:打印三角形

[root@manager day5]# cat printsan.sh 
#!/bin/bash
#*************************************************************
#Author: pyy
#Date:  2020-06-22
#FileName:      printsan.sh
#*************************************************************
#*
#**
#***
#****
#*****
read -p "请输入" num
for ((i=1;i<=num;i++))
do
	for ((j=1;j<=i;j++))
	do
		echo -n "*"
	done
	echo " "
done
#      *
#     ***
#    *****
#   *******
#  *********
for ((i=1;i<=num;i++))
do
	for ((j=1;j<=num-i;j++))
	do
		echo -n " "
	done
	for ((k=1;k<=2*i-1;k++))
	do
		echo -n "*"
	done
	echo " "
done
[root@manager day5]# sh printsan.sh
请输入5
* 
** 
*** 
**** 
***** 
    * 
   *** 
  ***** 
 ******* 
********* 

面试题4:判断闰年: ①该年份能被 4 整除同时不能被 100 整除;② 该年份能被400整除。

[root@manager day5]# cat ifrun.sh
#!/bin/bash
#*************************************************************
#Author: pyy
#Date:  2020-06-22
#FileName:      ifrun.sh
#*************************************************************
#判断闰年
while true
do
	read -p "请输入年份:" year
	if [[ "$year" =~ ^[0-9]+$ ]]
	then
		if [  $[year%4] -eq 0  -a $[year%100] -ne 0 ]
		then
			echo "$year is run nian"
		elif [  $[year%400] -eq 0 ]
		then
			echo "$year is run nian"
		else
			echo "$year not is run nian"
		fi
		break
	else
		echo "请输入的数字非法,请重新输"
	fi
done
[root@manager day5]# sh ifrun.sh
请输入年份:ds
请输入的数字非法,请重新输
请输入年份:de
请输入的数字非法,请重新输
请输入年份:22
22 not is run nian

死循环常用true 或 :

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着蜗牛追汤圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值