1、解读给出的题目: 目标:收集正好七颗宝石。 你已学习使用变量来在需要时递增值,从而记录一个变化的值。在新的这一关中,你将使用这-知识收集正好七颗宝石。宝石出现的位置和次数均随机。 若要通关,你需要使用一个while循环,其中包括当你收集到全部七颗宝石后返回false的布尔条件。你将使用比较运算符(<)将gemCounter的值与Int (整数)值7进行比较。 使用比较运算符while gemCounter < 7 { }1声明你的gemCounter变量并将值设定为0。2每次角色收集到宝石时,递增gemCounter的值。3使用while循环持续收集宝石,直至所有七颗宝石收集完毕。
2、理解示例: 从右边小绿人所在区域可以看出,这次的宝石💎没有给定数量,只有一枚,说明后面会随机再冒出来。示例给出了用while 条件去循环。用确定数字的for 循环无法实现目标。因为for 确定了循环次数,我们无法确定在几次动作后,正好收集了七颗宝石。 而while + 条件正好解决了这个问题。我们不需要知道需要几次可以达成,只要没有达成条件,就继续执行。当达成了条件,就跳出了循环。
3、 设置初始值为0,用条件while 的语法让其自动执行。 其中运用了func 语句。这是一个函数块,就相当于打包一下,用turnBack() 打包了花括号“{ }”里面所有的语句。当执行turnBack() 语句时,就执行一遍“{ }”里面所有的语句。
4、根据上述思路,给出代码:var gemCounter = 0func turnBack() { turnRight() turnRight()}while gemCounter < 7 { moveForward() if isOnGem { collectGem() gemCounter = gemCounter + 1 } if isBlocked { turnBack() }}图片中给出了每一段代码的功能,可以理解参考。
5、执行代码后,给出通关提示:正确无误!结合变量使用比较运算符来创建布尔条件是不是很方便?你可以将信息储存在变量中,并使用这些信息来决定代码将如何运行。现在尝试在更多关卡中使用这项技能吧! 最后如果实在想不出怎么写,可以停留在页面,输入框中会有提示哟。