嵌套循环对于编程初学者而言似乎很复杂,但它们实际就是循环中的循环。这对于制作像分形或有趣的形状这样的图形是有用的,这些图形会重复但每次都会稍有变化,创建ASCII艺术作品,甚至具有复杂的重复效果。本文的示例说明了嵌套循环如何帮助创建一些有趣的程序。您可以在任何种类的循环中嵌套任何其它种类的循环。例如,您可以在while循环中嵌套for循环!
使用伪代码(pseudocode)
嵌套循环可以任意组合发生。以下是嵌套循环的一些示例,但此列表并不详尽。
嵌套在for-each循环内的for-each循环:
for(item in list)
action1
for(item in list)
action2
action3
…
END_FOR_EACH
action4
END_FOR_EACH
例:
jellyBeanCount = 0
for(jar in jars)
for(jellybean in jar)
jellyBeanCount = jellyBeanCount + 1
END_FOR_EACH
END_FOR_EACH
While循环嵌套在for-each循环中:
for(item in list)
action1
while(condition)
action2
action3
…
END_WHILE
action4
END_FOR_EACH
例:
for(room in house)
while(wallsWhite)
paintWallsBlue
END_WHILE
END_FOR_EACH
使用Scratch
使用钢笔绘制有趣的形状时,Scratch中的嵌套循环会很有趣。这是Scratch中嵌套循环的一些基本示例。
嵌套在重复循环内的重复循环
下图显示了绘制10个同心正方形的Scratch程序的示例。外部重复循环负责每个方格重复10次。内部重复循环负责对每条线重复4次,并在每个方格中旋转。
嵌套在repeat-until循环内的重复循环
看一下下面的图片,可以看到Scratch程序的示例,该程序在屏幕周围的任意位置绘制正方形,直到用户按下空格键为止。
使用Python
用嵌套循环在Python中编写的最有趣的程序之一是ASCII艺术。在编码中,您可以在键盘上键入的每个字符和符号都有一个数字表示,称为ASCII码。 尽管使用当今的编程语言,您可以在程序中键入字符或符号,但过去则必须使用ASCII数字表示形式。ASCII艺术基本上是指使用字符或符号创建图片。这里有一些非常惊人的ASCII艺术例子。
您可以使用嵌套循环在Python中创建一个简单的ASCII美工程序! 例如,要创建此模式:
#
##
###
####
#####
######
#######
########
#########
该算法可能是:
Print 1 # on Row 1
Print 2 # on Row 2
Print 3 # on Row 3
…
您也可以使用嵌套循环来表示!
for row in range(1, 11):
rowText = ''
for column in range(1, row):
rowText = rowText + '#'
print rowText</pre