第43课 紧箍咒
紧箍咒(for循环)
紧箍咒一念,孙悟空头上的紧箍就会收缩,让悟空头痛欲裂。紧箍咒好像是“唵嘛呢叭咪吽”这样念的。
如果让程序把紧箍咒念上10遍,需要怎么做呢?
温故知新
(1)直接输出10次。

(2)使用while循环更便捷,但总要考虑循环结束条件是i<10还是i<=10,一不小心就容易出错。

(3)使用do-while与while差不多。

紧箍咒for循环
有没有想过为什么已经有了while循环还要设计for循环呢?
在使用while循环的时候,总需要我们事先思考出结束的条件,还有当遇到连续计数输出时,需要先声明一个变量i,在循环体内不断地进行i++,再进行while(对i进行判断)。
尝试将它们融合就有了for(int i=0; i<10; i++){}。

运行程序:
唵嘛呢叭咪吽
唵嘛呢叭咪吽
唵嘛呢叭咪吽
唵嘛呢叭咪吽
唵嘛呢叭咪吽
唵嘛呢叭咪吽
唵嘛呢叭咪吽
唵嘛呢叭咪吽
唵嘛呢叭咪吽
唵嘛呢叭咪吽
对比学习
从while循环演变到for循环,进行了组合创新。



儿时游戏
儿时特别爱玩“老狼老狼几点钟?”的游戏。小朋友A背对着其他小朋友站立不动,问:“老狼老狼几点钟?”其他小朋友在此期间快速跑向那位小朋友,试图拍他的肩膀来取胜。
随后小朋友A自己回答“1点钟”并转身,此时跑动的小朋友必须立马停下不再跑动,否则就算被抓住了。小朋友A再次背过身去问:“老狼老狼几点钟?”此时其他小朋友可以再次跑动。重复这个过程,直到小朋友A回答“12点钟”的时候,他就会跑去抓其他小朋友,抓住了他就赢了。
老狼老狼几点钟?1点钟
老狼老狼几点钟?2点钟
老狼老狼几点钟?11点钟
老狼老狼几点钟?12点钟
看看其中哪些是重复不变的,可以写成字符串;哪些是规律变化的,可以用变量替代。
老狼老狼几点钟?12点钟→“老狼老狼几点钟?”+变量+“点钟”

运行程序:
老狼老狼几点钟?1点钟
老狼老狼几点钟?2点钟
老狼老狼几点钟?3点钟
老狼老狼几点钟?4点钟
老狼老狼几点钟?5点钟
老狼老狼几点钟?6点钟
老狼老狼几点钟?7点钟
老狼老狼几点钟?8点钟
老狼老狼几点钟?9点钟
老狼老狼几点钟?10点钟
老狼老狼几点钟?11点钟
老狼老狼几点钟?12点钟
我来抓你们了!
(1)对于几点钟,用变量i替代了int i。
(2)因为数数是从1点钟开始的,所以int i=1,便于计数。
(3)一直数到12点,并且包括了12,所以条件设置为i<=12。
(4)每次数数都会增加1,所以将变量增加设置为i++。
程序逻辑
第1次循环:i=1满足条件1<=12,输出“老狼老狼几点钟?1点钟”,i自增1为2。
第2次循环:i=2满足条件2<=12,输出“老狼老狼几点钟?2点钟”,i自增1为3。
第11次循环:i=11满足条件11<=12,输出“老狼老狼几点钟?11点钟”,i自增1为12。
第12次循环:i=12满足条件12<=12,输出“老狼老狼几点钟?12点钟”,i自增1为13。
再想进入循环,i=13不满足条件,13<=12为假,循环结束。
程序按照①→②→③→④的方向运行。

满足条件则按照②→③→④→②周而复始,直到条件不成立,结束循环。
划重点
for循环的结构如下:
for(声明循环变量并赋初始值;循环条件表达式;循环变量更新){执行语句}
for循环圆括号中各参数用;隔开,第一部分用于声明变量,并赋予序列初始值;第二部分作为每次是否进入循环的判断条件;第三部分用于更新循环变量的值。
巩固练习
(1)在C++中,下面的for循环将执行多少次?()

A.4次
B.5次
C.6次
D.无限次
(2)在C++中,下面的for循环的输出是什么?

输出:_____________________________________________________________ __
(3)编写一个C++程序,使用for循环打印1到10的数字。
(4)编写一个C++程序,使用for循环打印0~100的所有偶数。
