Micro:bit-模块的类型和流程控制

之前我们介绍了一些Micro:bit的基本情况,并且也实现了一个简单的心跳小程序,这节课我们来看看Micro:bit在线编程网站提供了哪些模块,这些模块都是干什么的,然后通过一个小程序展示它们之间的运行顺序是怎样的。我们先打开micro:bit在线编程网站看看吧


Micro:bit-模块的类型和流程控制


我们可以看到在页面中间的模块区有很多五颜六色的分类,每个分类下都有各式各样的模块,它们代表了不同的功能,不要被这些花花绿绿的颜色迷惑,虽然功能不同,但是它们是有共同点的。


模块的类型


Micro:bit网站为我们预置了丰富多彩的模块,但是细心的你可能已经注意到了,它们的形状是不同的,大体分为以下三种形状:


  1. 下图中第一排像一个钩子一样的模块,它代表了一个事件(如果忘了事件是什么,回顾一下这篇教程)或者一个流程,例如当按钮A按下时应该执行的操作,或者无限循环执行的操作

  2. 下图中第二排有一个豁口和一个尖尖的模块,它代表了一个操作,例如播放一段音乐,或者显示LED数字

  3. 下图中第三排左边有一个突起的模块,它代表了一个求值语句,例如求出当前变量item的值,或者求出0+0的值


Micro:bit-模块的类型和流程控制


记住了这3个形状,我们就可以通过模块的形状很容易的区分出它是哪种类型的模块啦,但需要注意的是:


1.事件或流程模块是彼此独立的,它们之间不能够相互组合,它们内部能够放置一个或多个操作语句

Micro:bit-模块的类型和流程控制


2.操作语句是可以相互组合的,例如可以先显示数字0,然后再显示数字1,它们内部也可以包含求值语句,注意看接口的形状,如果接口的形状与求值语句的形状吻合,就代表了它需要求值语句啦,另外要特别记住的是,操作语句只有放入上面的事件或流程模块中,才能够真正执行,执行顺序是从上到下的,而未放入事件或流程模块的操作语句会显示为浅色,比如下面图里的操作语句就不会执行。

Micro:bit-模块的类型和流程控制


3.求值语句也可以在其内部组合一个或多个求值语句,但是和操作语句一样,需要放入事件或流程模块中才能够真正执行,下面这个复杂的求值语句也不会执行呦

Micro:bit-模块的类型和流程控制


4.模块的颜色代表了它属于哪个分类,比如蓝色是基本,绿色是逻辑,红色是变量


说完了模块的类型,我们来看看各个事件与流程的执行顺序。


事件与流程的执行顺序


Micro:bit预置了两个特殊的流程模块,在基本分类下,分别是当开机无限循环当开机时是一个事件,意味着在程序启动后需要执行的操作,但是需要注意的是,当开机时的操作仅执行一遍,随后如果有无限循环模块,则一直执行无限循环里的操作。那有同学可能会问,那我如果有两个无限循环模块,会怎么样执行呢?嗯,这是一个好问题,我们来看下面的例子:


  1. 当开机时显示小心心

  2. 无限循环1顺序显示0 2 4

  3. 无限循环2顺序显示1 3 5

  4. 无限循环3顺序显示7 8 9

  5. 当按钮A按下时显示6

Micro:bit-模块的类型和流程控制

大家可以先猜一下执行顺序。


下面直接放出结果,我在显示数字2的之后按下了按钮A,可以看到在显示了一个小心心之后,程序的显示顺序是 0 1 7 2 3 8 4 6 5 9,

Micro:bit-模块的类型和流程控制


但是再执行一遍,还是在2之后按下按钮A,显示顺序却是 0 1 7 2 3 8 6 4 5 9

Micro:bit-模块的类型和流程控制


以上可以得出两个结论,

  1. 如果存在多个无限循环,系统会按照顺序每个无限循环交替执行其中的一条语句,上面例子就是先执行了无限循环1的 显示数字0,再执行无限循环2的 显示数字1,再执行无限循环3的 显示数字7,以此类推

  2. 因为在几乎是在同一时间按下按钮A,但是显示的结果不同,我们可以得出事件模块的执行顺序不是固定的,有可能在某条语句之前,也有可能在它之后,不能固定的认为它一定会在某条语句之前或之后执行


另外还有一个例子,我改变了 无限循环2 和 无限循环3 的位置,执行结果就变成了 0 7 1 2 8 3 4 9 5,

Micro:bit-模块的类型和流程控制


因此可以得出第3条结论,

   3.  靠上的语句会先执行


总结


今天介绍了Micro:bit模块的3种类型分别是事件或流程模块,操作语句模块和变量或求值模块,并且通过两个例子得出了执行顺序的3条结论:


  1. 如果存在多个无限循环,系统会按照顺序每个无限循环交替执行其中的一条语句

  2. 事件模块的执行顺序不是固定的

  3. 靠上的语句会先执行


你都记住了吗?



始发于微信公众号: 暴王不暴燥

打赏

博主开通了微信公众号,欢迎关注啦

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.