孩子趣味学编程之Scratch篇/K12少儿计算机编程丛书

孩子趣味学编程之Scratch篇/K12少儿计算机编程丛书
作者: 张文婧//乔陶鹏//刘芸//方亮
出版社: 清华大学
原售价: 59.80
折扣价: 42.50
折扣购买: 孩子趣味学编程之Scratch篇/K12少儿计算机编程丛书
ISBN: 9787302523451

作者简介

内容简介

第2章中,我们介绍了计算机语言中的三大结构之一:顺序。本章将学习另一个重要的结 构:循环。首先我们会向大家介绍循环的概念,然后向大家逐步展示循环的几种用法。 3.1 循环的基本概念 3.1.1 你喜欢的书或电影看了几遍呢? 平常大家都喜欢看书吧?*喜欢哪本呢?《哈利·波特》?和你的朋友讨论时,你也 许会说:《哈利·波特》,我都看了三遍了!你的朋友们会立刻对你刮目相看,哇!都看 了三遍。 这句话很简单,但包含了两个重要信息: ● 看《哈利·波特》。 ● 三遍。 **个信息说明什么呢?你做了一件事,这件事是“看《哈利·波特》”。第二个信 息说的是你做这件事的次数—三遍!同样的例子你可以举出很多:“我把这首诗背了两 次”“他绕着*场跑了5圈”……这些例子的共同特点是“做一件事+次数”。 对应于计算机语言的结构,就是“循环”。 循环的英文是“loop”,意思是:The actions of doing something over and over again。译成中文就是:一个或一组反复执行的动作。 结合上面的例子,可以看出,对于循环来说,有两点很重要:执行的动作,要做多少 第3章 循 环 孩子趣味学编程之Scratch篇 二校 正文3.indd 44 2019-3-7 11:16:42 045 第 3 章 循 环 次,也就是次数。 使用循环有什么好处呢?我们再来看《哈利·波特》。你如果说:“我看了一遍《哈 利·波特》,我又看了一遍《哈利·波特》,我接着又看了一遍《哈利·波特》。”怎么 样?很麻烦吧,你得说三遍来表达你看了三次,这个对应于第2章,通过“顺序”的方法实 现了你想要说的。但如果你说“我看了《哈利·波特》三次”,那么意思是一样的,但是 你用很短的一句话就表达了上面三句话的意思。 这就是使用循环来处理重复动作的好处—简洁。 3.1.2 Scratch中的循环 在Scratch中,循环是用一些看上去很特殊的积木块来实现的。这个积木块在Scratch 积木区的“控制”分类里(见图3-1)。 图3-1 循环所使用的积木块 在图3-1中,蓝色方框的那两个积木块就是代表循环的积木块,这些积木块像不像一 个张开的大嘴?你能想象要被反复执行的动作积木块应该放到哪里吗? 孩子趣味学编程之Scratch篇 二校 正文3.indd 45 2019-3-7 11:16:43 046 孩 子 趣 味 学 编 程 之Scratch篇 试一试 这个大嘴怎么用呢? 答案是放到“嘴里”。不用担心,虽然原有“积木块”的嘴看上去不够大,但是里面 加入其他积木块后,它会自然扩大的。 在图3-2中,“移动10步”那个积木块就像你说的“看《哈利·波特》”一样,是循环 的内容,“重复执行10次”是循环的次数。 如果想要修改循环的次数,应该怎么做呢?在第2章里,我们讲了如何修改Scratch积 木块里的数字,这里的修改方式是一样的。复习一下具体步骤。 1)鼠标单击“重复执行10次”,其中的“10”会变成灰底。 2)输入想要重复的次数,例如“5”,就可以了。 过程如图3-3所示。 图3-2 Scratch的循环 图3-3 循环次数的修改 是不是很简单啊。现在赶紧尝试运行这两个程序段吧。 注意 测试之前别忘了在顶上加上“当 被点击”。 3.2 代码画家—次数明确的循环 在第2章里我们已经学习了在Scratch中如何使用画笔来画直线,其中所有的程序都是用顺 序来实现的,那么现在一起来看下循环如何帮我们把程序写得很简洁。 我们来看那个三条连续横线的程序。还记得要求吗? 背景:白色背景 孩子趣味学编程之Scratch篇 二校 正文3.indd 46 2019-3-7 11:16:45 047 第 3 章 循 环 角色:画笔(pencil) 玩法要求: 当单击绿旗后,画笔一次画出三条直线,每条直线长100步,三条直线间隔20步。 还记得我们用顺序是怎么实现的步骤吗? 1)设定画笔粗细。 2)落笔,移动100步,抬笔,移动20步。 3)落笔,移动100步,抬笔,移动20步。 4)落笔,移动100步,抬笔。 图3-4是画出的结果以及用顺序实现的程序。发现了什么特点吗? 图3-4 三条横线及程序 如果把程序像图3-5这样切开,两个橙色方框里的程序是一模一样的。蓝色方框里的 程序段与橙色方框里的程序段只差了一个“移动20步”,如果我们加上这个积木块,对画 出的图形有影响吗? 图3-5 切开程序 孩子趣味学编程之Scratch篇 二校 正文3.indd 47 2019-3-7 11:16:46 048 孩 子 趣 味 学 编 程 之Scratch篇 试一试 分别在Scratch里写下上面的两段程序,画出的结果相同吗? 画出的图形是一样的!那么*后添加了“移动20步”的命令之后,三段程序的积木块 是**一样的,意味着这段程序被执行了三次!那么想到怎么修改程序了吗? 答对了!我们可以用循环来实现它。程序会变得简短了很多(见图3-6)。 图3-6 使用循环后的程序 这里面也提示了一个很重要的问题,循环里面的内容执行完*后一个命令后 注意 会返回到循环的**个命令继续执行。 现在,让我们一起看一下2.4.3节中的伸缩棒 如何画(见图3-7)。 问题描述如下。 背景:白色背景 角色:画笔(pencil) 玩法要求: 当单击绿旗后,画笔一次画出三条直线,每 条直线长100步,**条直线宽度是3,第二条直 线宽度是6,第三条直线宽度是9。 图3-7 伸缩棒 孩子趣味学编程之Scratch篇 二校 正文3.indd 48 2019-3-7 11:16:47 049 第 3 章 循 环 试一试 可以采用上面的方法,先用顺序的方法完成任务,然后再分析程序中重复的部分,改 用循环实现。 这里,我们介绍另外一种直接从题目上分析的方法。 题目中,**句话是3条直线,那就意味着我们考虑使用循环,次数是3,依此可以确 定循环的一个重要内容—循环次数。 第二句话是每条直线长100步,这句话告诉我们落笔后对每条直线来说移动的长度是相 同的,是可以在循环里面执行的。 第三句话是**条直线宽度是3,第二条直线宽度是6,第三条直线宽度是9。这三个数不 同,有些麻烦。这时候,我们需要找规律了—每条线比之前的粗细增加了3。这样又变成重复 增加某一个固定的数值了,所以我们需要的是在循环中让线的粗细增加一个固定的数值—3。 根据上面的分析,用循环完成这个程序。 伸缩棒的完整程序如图3-8所示。 图3-8 伸缩棒的程序 轻松学编程,趣味满足孩子的创意世界