我们在写代码时,一个相同的动作重复执行,重复次数不确定,可以使用While循环指令
While循环指令:只要给定条件为TRUE值,当重复一些指令时,使用WHILE。
While语法结构
WHILE <EXP> DO
<SMT>
ENDWHILE
<EXP>
:循环判断条件
<SMT>
:待执行指令
程序执行过程
(1)评估条件表达式。如果条件为TRUE值,则执行WHILE块中的指令。
(2)随后,再次评估条件表达式,且如果该条件结果为TRUE,则再次执行WHILE块中的指令。
(3)该过程继续,直至表达式评估结果成为FALSE。
随后,终止迭代,并在WHILE块后,根据本指令,继续程序执行。
如果条件结果在开始时为FALSE,则不执行WHILE块中的指令,且程序控制立即转移至
WHILE块后的指令
While示例说明
MODULE MainModule
PROC main()
!只要reg1 <= 20,则重复WHILE块中的指令
WHILE reg1 < 20 DO
reg1 := reg1 + 1;
ENDWHILE
ENDPROC
ENDMODULE
执行说明: 执行while指令时候,先判断reg1<=20的条件是否成立,如果条件成立则执行循环语句内的内容,while中每次执行一次reg1:=reg1+1,即reg1自加一;执行完一轮以后程序指针又跳到while指令去第二次判断reg1<=10条件是否成立,条件成立则又继续执行循环语句内的内容reg1:=reg1+1,即reg1又自加一次;这样重复判断条件重复执行while中指令,直到条件reg1<=20不成立,即reg1=11时候,程序执行指针才会跳转到endwhile指令后面,结束while指令,往下继续运行。
WHILE无限循环
WHILE TRUE DO
<SMT>
ENDWHILE
执行说明: while指令的条件是true,即条件一直成立,所以程序指针执行到while指令以后,程序就会一直永远地执行while指令,程序指针不会跳出到endwhile指令后面继续往下运行,所以这里的while就是一个死循环,即无限循环。一般可以用在编写程序正常自动运行部分,让机器人正常工作时候处于永远执行。
总结
(1)While可以嵌套
(2)不确定重复次数用While,确认重复次数用FOR
(3)如果可能确定重复的数量,则可以使用FOR指令
希望对你们有所帮助,如有不足之处,欢迎大家留言探讨,本文已经首发在个人微信公众号:龙猫YOU ,欢迎关注!