到现在为止,您已经使用了很多事件处理器了。在过去的几个活动中,当用户按下一个按钮,您的应用程序就会执行某些操作。例如,在《代码6:列表》的魔法8号球应用程序中,输入按钮将项目添加到待办事项列表中。事件是用户按下“输入”按钮,应用程序处理该事件的方式是将用户的文本添加到待办事项列表中。您应用程序代码的运作方式如下:
如果您没有机会参加此活动,则可以下载代码并立即尝试。
您可能也注意到了,我们可以按下输入而不提问(将方框留空),应用程序仍然会给你一个答案。我们一起来解决这个问题吧。我们当然不希望出现用户没有问任何问题,却出现答案的情况。因此,每次用户点击输入,我们希望我们的代码检查 “用户是否输入了任何文本“?如果答案是肯定的,应用程序就会给他们一个答案。如果答案是否定的,应用程序就会要求他们提问。现在您的代码看起来更像这样:
在这里,“做这个”表示“给出答案”,“做那个”表示“要求他们提出问题”。 这是解决上述问题的一种好方法,不过需要记住,计算机无法自己思考,因此您不能像问一个人那样直接向它提问。
在编码中,当您想问自己的应用程序一个问题时,就得编程让它检查一个条件。条件是计算机用来可以判断对错的东西。“真”就像电脑回答“是”,“假”就像在回答“否”。您可以让应用程序根据条件的真假来做不同的事情。您可以通过以下方式使用条件,询问应用程序用户是否输入了文字:
还记得《代码4:数据和函数》中的数据类型布尔值吗?布尔值是一种数据类型,可以为真,也可以为假。当您的应用程序检查一个条件时,它会以布尔值的形式给出答案。
条件语句
现在,您学习了什么是条件,但应该如何在编码中使用它呢?在编码中,您要求计算机通过编写条件语句来检查条件。条件语句是计算机做决定的方式。条件语句总是有一个if部分,它告诉应用程序当条件为真时应该做什么。条件语句通常也有一个else部分,它告诉应用程序当条件为假时应该做什么。如果您省略else部分,那么当条件为假时,您的应用将不做任何事情。现在您的输入按钮代码看起来应该是这样的:
下面是App Inventor和Thunkable中的条件语句。
这些代码块的运作方式如下。您在if旁边放置一个条件。 如果条件为真,则将代码放置在then(则)旁边,如果条件为假,则将代码放置在else(否则)旁边。 如果条件为真,则仅运行then(则)旁边的代码,而else(否则)旁边的所有代码。 如果条件为假,then(则)旁边的代码将被忽略,if(如果)旁边的代码将运行。 可以认为它说:“if(如果)满足此条件,then(则)做这个, else(否则)做那个”。
让我们回到魔法8号球的例子。下面是条件语句填充后的样子。
在这里,当用户点击“输入”按钮时,应用程序将检查这个条件:“文本框中的字符串不等于一个空白字符串”。如果这个条件为真(字符串不等于空字符串),意味着用户已经输入了文本,所以应用程序将给用户一个答案。如果条件为假(字符串等于一个空字符串),那么then旁边的所有代码都被忽略,并跳到else,就是在告诉用户“先问我一个问题!”
编写这种条件语句的方法有好几种。它们都是有用的,是否好用取决于个人看法。下面还有四个示例。看看您是否能理解它们。
示例1:
条件:文本框中字符串的长度不等于零 | |
示例3:
条件:文本框中的字符串长度等于零 (请注意,与示例1相比,then和else旁边的代码块已对换了) | 示例4:
Condition: the textbox is empty (notice that the blocks next to then and else are switched compared to example 1) 条件:文本框为空 (请注意,与示例1相比,then和else旁边的代码块已对换了) |