双重循环专场 LLL

182 阅读3分钟

1、双重循环概述

  1. 双重循环需要具备的前提——存在两个以上的自变量。
  2. 执行机制:
  • 循环必须是有规律的递增或递减,脚本从上至下执行。
  • 在没有break、exit、continue等结束语句时,循环语句会逐条执行。外层循环每执行一次,内层循环都要全部执行完毕,下一次外层循环才能再执行。
  • 可以把内层循环,看作外层循环的一个命令语句。

双重循环演示:

外层循环5次,内层循环5次。

image.png

image.png

外层循环 you idiot 每执行一次,内循环 fucking piece of shit 执行五次 。

2、shell脚本退出循环语句

2.1 break

break的作用:

  • 跳出单层循环,默认为break 1,后面的数字为跳出层数。例如"break 2"为跳出2层循环。
  • 循环内break之后的语句都不会执行,但循环外的语句仍然会执行。常用命令-break命令主要用于结束for,while或until循环 

break 结束for,while或until循环。

在内层循环的输出语句上方,增加 if 语句判断,当内存循环到达第三次时,执行break跳出内层循环。

效果:外层循环5次,内存循环1次。(内层循环每到达第2次时,就跳出内层循环,执行下一次外层循环。)

image.png

image.png

2.2 exit

exit的作用:  exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行。

示例:

在内层循环的输出语句上方,增加 if 语句判断,当内存循环到达第三次时,执行exit退出脚本。

效果:外层循环只执行1次,内存循环只执行2次。

image.png

image.png

2.3 continue

continue的作用:

用命令continue用于结束本次循环, 继续执行下一个for, while或until循环; 可指定从第几层循环继续执行

image.png

image.png

3、使用双重循环输出图形

外层循环用于表示行数。

内层循环用于表示列数。

3.1 图形1:实心矩形

每一行打印10个星星,一共打印5行。

image.png

image.png

3.2 图形2:空心矩形

步骤1:第1行和第5行,输出20个星星。

步骤2:第2~4行,输出1个星星。再输出8个空格。最后再输出1个星星。

image.png

image.png

3.3 图形3: 直角三角形

第一行输出1个星星,

第二行输出2个星星,

第三行输出3个星星,

以次类推,

直到第九行输出9个星星。

方法1

image.png

image.png

方法2

image.png

image.png

3.4 图形4: 倒直角三角形

第一行打印9个星星;

第二行打印8个星星;

第三行打印7个星星;

以此类推,

直到第九行打印1个星星。

image.png

image.png

3.5 图形: 反直角三角形

先输出一个空格填充的倒直角三角形,再输出一个星星填充的直角三角形。

image.png

image.png

3.6 图形6: 等腰三角形

方法一:

反直角三角形+正直角三角形

image.png

image.png

方法二 数学方法:

先输出一个空格填充的倒直角三角形;之后输出每行的*,每行的*个数=行数×2-1。

image.png

image.png

3.7 图形7:倒等腰三角形

方法一:

先输出一个空格直角三角形,再输出一个 * 填充的反直角三角形,最后输出一个 * 填充的倒直角三角形。

image.png

image.png

方法二 数学法:

先输出一个空格填充的倒直角三角形;之后输出每行的*,每行的*个数=行数×2-1。

image.png

image.png