机器人教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流程控制模块——If模块
If语句与if-else语句
if——“如果,假如”;
else——“否则”。
在C语言中,if语句测试一个特定的条件。如果该条件为真(即条件成立),一条或一组指令将被执行;否则,这一条或一组指令将不被执行。
if-else语句测试一个特定的条件。如果该条件为真(即条件成立),执行if所指向的某一条或一组指令;否则,将执行else语句指向的某一条或一组指令。
If模块的使用
在RoboEXP中,我们使用If模块来实现C语言中的if和if-else语句。If模块图标由If图标和Endif图标组成。
只要把If模块拖动到编程区,编程区中就会自动出现If图标和EndIf图标。
使用If模块实现C语言中的if语句,只需通过若干线和模块图标把If图标的右边与EndIf图标的左边连接起来就行了。举一个简单的例子:如果测试的条件为真(即条件成立),执行Calculate模块对应的指令;否则不执行Calculate模块对应的指令。编程区如下图:
使用If模块实现C语言中的if-else语句,只需在上述基础上把If图标与EndIf图标的下边连接起来就行了。举一个简单的例子:如果测试的条件为真(即条件成立),执行Calculate
模块对应累加1的指令;否则执行Calculate模块对应累加2指令。编程区如下图:
与C语言的if和if-else语句相似,If模块所测试的特定条件是一个逻辑运算或比较运算的表达式(条件表达式),其运算结果只有真和假两种。与C语言一样,在RoboEXP中用1表示真,0表示假。
If模块的运算符:
If模块中用到的运算符有比较运算符和逻辑运算符。
在RoboEXP中,用到的算术运算符有五种:+、-、*、/、%,用到的比较运算符有六种:<、<=、>=、>、==、!=,用到的逻辑运算符有两种:逻辑与&&、逻辑或||。这些运算符的使用与C语言相同,详情如下表:
运算结果
X + Y计算X和Y的和
X -Y计算X和Y的差
X * Y计算X和Y的积
X / Y计算X和Y的商
注:如果两个数都是整数,那么“/”表示的是整除的意思,即只保留运算结果的整数部分而舍弃小数部分。例如21/6的结果不是3.5而是3。
取模运算符“%”用于计算两个数相除后得到的余数,它只适用于两个整数之间的计算。例如21%6的结果是3,21%7的结果是0。
If模块的设置
当If模块的条件表达式为空时,默认测试的条件是1(即默认为真)即必定执行if后模块。要修改If模块的测试条件,双击If图标,在属性对话框中显示if模块属性,或点击“视图”→“属性窗口”,进入如下对话框::
条件表达式编辑框条件表达式由运算符和变量组成,它们可以直接输入,也可以点击窗口中的运算符、选择变量进行输入,检验表达式的语法正误。条件表达式编辑框中输入表达式的同时,在图形窗口区域内直接出现该表达式。
变量选择窗口该窗口下拉菜单的变量为已经定义过的局部变量或全局变量,表达式中的变量必须是已经定义过的变量。
提示窗口提示窗口中输入的信息,并不会在If图标中直接显示出来,而是当鼠标移动到If图标时,显示该提示信息。
注意:当在条件表达式编辑框中输入未被定义过的变量时,用检验表达式的语法正误不会检查出错误,但编译时无法编译成功,因为该变量没有定义过。
If模块应用实例
用If模块编辑一个实际的例子程序。该程序是判断一变量j值是否等于0,如果i增加
10,否则i减少10。程序的编辑步骤如下:
1) 新建图形化应用程序;
2) 各拖动一个If模块、两个calculate模块到编程区,然后按下图连线:
3) 参阅定义变量的章节,定义一个unsigned char类型的变量i、j并设置calculate模块信息,详参照calculate模块设置;
4) 设置If模块。双击If图标,在右侧属性栏设置属性。在条件表达式窗口中直接输入j==0,提示窗口中输入相关提示信息,便于程序理解;
5) 这样,程序就完成了;如图所示:
6) 参阅编译的章节,编译该程序,并保存。
流程控制模块——While模块
在某些情况下,我们可能需要反复处理一组事件。为了反复处理这一组事件,我们可能需要重复地编写一组相同的代码。但是,这样的工作既烦琐又辛苦,而且编写的代码难以维护和修改。为了减少这种重复性的操作,程序设计语言提供了循环语句,它允许程序重复执行某一组指令。
While语句
while——“当……的时候”。
C语言提供while语句来重复执行某一组指令。在C语言中,while语句测试某个特定条件,若特定条件为真(条件成立),程序就重复执行while循环体内的指令,直到特定条件为假(条件不成立)时才退出循环。
在执行循环体内指令的过程中,如果无法导致特定条件变为假,那么程序将无法从循环中退出。这就是通常所说的“死循环”。巧妙地利用“死循环”,能够达到一些特殊的效果。While模块的使用
在RoboEXP中,我们使用While模块来实现C语言中while语句。While模块的图标是
由While图标和EndWhile图标组成。
只要把While模块拖动到编程区,编程区中就会自动出现While图标和EndWhile图标。
使用While模块实现C语言中的while语句,只需通过若干线和模块图标把While图标的右边与EndWhile图标的左边连接起来就行了。举一个简单的例子:如果测试的条件为真(即条件成立),默认情况下,while条件衡为真,循环执行test=test+1,直到条件变为假(即条件不成立)才退出循环,该程序为死循环。编程区如下图:
与C语言的while语句相似,While模块所测试的特定条件是一个逻辑运算或比较运算的表达式(条件表达式),其运算结果只有真和假两种。与C语言一样,在RoboEXP中用1表示真,0表示假。
While模块的运算符
While模块中用到的运算符有比较运算符和逻辑运算符。具体说明请参阅If模块。While模块的设置
当While模块的条件表达式为空时,默认测试的条件是1(即默认为真)。要修改While 模块的测试条件时,您只需双击While图标,然后在弹出的对话框中编辑条件表达式。
While模块的设置与If模块的设置相似。
While模块的应用示例
在这里,我们将会用While模块编辑一个实际的应用函数。该程序是一变量test,初始值为0,每次加5递增,如果test的值大于100则退出。程序的编辑步骤如下: