课程首页 › 第3部分 › 第43课

第43课 紧箍咒

第3部分 不辞辛苦 · 循环结构· 知识点:for循环

紧箍咒(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的所有偶数。