一、什么是循环
“循环”的字面意思就是往复回旋,指事物周而复始的运动或变化。意思是转了一圈又一圈,一次又一次的循回。
计算机领域中的“循环”,结合字面意思,简单来说就是计算机重复去做一件事情,是一种常见的控制流程。最开始我们让计算机去做的事情,就是重复去做一个事情,解脱人类的劳动力,机器会做了之后,就可以一直重复做,它不怕苦也不怕累,它可以不眠不休,比我们人做的快多了。在计算机中这种“重复”的概念就是循环。
二、实战
“循环”用计算机指令语言表示就是FOR。
回想一下,做一件事情重复100遍,比如让你捡100粒豆子,你会怎么做?是不是做一遍心里会默数着1,捡一个,加1,然后记着2,……直到第100粒捡完,好了,任务完成!
其实,计算机也是这样做事的,它每做一遍,计数器会帮它记着+1,直到做到规定的遍数。有人帮你数着,不会错也不会乱了,那计算机编码具体怎么写的呢?
不同的编程语言,具有不同的命令格式,现以python语言为例。
实例1:
左边是编码指令,右边是运行结果,你能猜到这些指令是什么意思么?
1、先看左栏,for是一个循环命令,计算机看到它,如果它会说话的话,它可能会说:“嘿伙计~,打起精神,我要开始重复做事了”。谁在帮它在计数呢?对了,是i。那计数从几计到几,数到什么时候是个头呢?那就是range(0,10)。所以,这一行的指令意思就是做一件事情重复10次。如果你想让它重复做100次,那就把10变成100。
2、那具体做的是件什么事情呢?接下来的这个指令print就是它具体要做的事情,输出的意思。具体输出什么信息呢?那就是print之后里括号的内容。输出的内容用逗号隔开,表示输出三部分内容。结合右栏的运行结果,你能猜到输出的结果的具体含义了么?
首先,输出一个i值。i是帮我们计数的,以免数乱了,出岔子。每做一遍输出i,相当于告诉我们这是第几遍了。
其次,输出的是一个带 ” ” 的内容。计算机里面,如果内容被””引着,就表示,计算机需要原原本本的输出 “ ” 里面的内容,不需要考虑它的意思,就是说,你是老大,你说的算,你说啥是啥。
最后,输出i%7。%是一个运算符,表示取余数,i%7表示i除以7后的余数。我们还可以根据需要,取不同数的余数,比如设定i%2,i%5等等。用除以2取余数是否为零的方法,可以判断一个数是奇数还是偶数,在编程里常用于判断是奇数行还是偶数行。
3、左栏的命令清楚了,你设想一下运行结果会是什么样子的?反过来我们再看一下右栏的运行结果,我们发现,最后的结果输出是两个0行,两个1行,两个2行,……2个9行。想一想,这又是为什么呢?
是的,因为,我们在输入指令时,输入了两行print,观察一下这两行的print是不是一模一样?计算机其实是个死心眼,你告诉我做啥我就做啥,你让我干啥我就干啥,你告诉我让我输出两遍,那我就输出两遍,丝毫不会差的,这一点,看起来有点笨笨的计算机是不是也是很可爱呀!
4、仔细观察一下左边的命令栏,再看一遍for和print指令,有没有什么新发现?
发现没有,for和print的位置有所不同?print是缩进了几格的,并没有跟for对齐,看起来感觉是囊括在for里面的?for循环就是通过缩进的格式,知道哪些循环动作是归它管的,哪些动作是不归它管的。
那如果我们把最后一个print跟for对齐,猜一下,输出结果会是什么样子呢?
跟你预想的一样么?跟你预想的哪里不一样呢?想一下,为什么会是这样的输出结果?
【分析】第二个print跟for对齐之后,格式变了,它所代表的含义就变了,变得跟第一个print稍微有点点不一样了。第一个print是被囊括在for循环的循环体系里,所以,根据循环的次数,需要不停的执行输出的操作;而第二个print则是for循环之外的一个命令,是for循环执行完以后又执行的一个输出操作,所以,它输出的内容是执行完循环命令之后的当前的i值情况。
For循环的这些你学会了么?是不是很有意思呢?