Polyworks脚本开发学习笔记(六)-比较运算、数学运算、逻辑运算及流程控制
前言
比较运算、逻辑运算及流程控制是编程的基本语法,Polyworks的语法规则与VB/C#/Python等并没有很大的不同,但在细节上还是有一些不太一样的地方,这里也做一下回顾。
比较运算
小于 < smaller than
小于或等于 <= smaller than or equal to
大于 > larger than
大于或等于 >= larger than or equal to
等于 eq equal to
不等于 !eq different from
等于 == equal to
不等于 != different from
总结以上,等于有两种表达方式 eq 和 == ,不等于也有两种表达方式 !eq和!= ,这是比较不同的地方。
比较运算的结果为True或者False,为逻辑型变量
数学运算
常规运算: 加法 + 减法 - 乘法 * 除法 /
求余数 %
括号 改变计算优先级 ()
还有数学函数 SIN COS TAN 等见上一章
逻辑运算
常见逻辑运算为 与 非 或 (异或较少这里不提了)
在Polyworks脚本开发中,没有直接的与 非 或 逻辑运算,只能用
IF … ELSE…ENDIF 来模拟逻辑运算
流程分支
- IF … ELSE…ENDIF 流程分支
DECLARE n 5
IF $n>6
MACRO ECHO ("True")
ELSE
MACRO ECHO ("False")
ENDIF
- IF … ELSEIF…ENDIF 流程分支
DECLARE n 5
IF $n>6
MACRO ECHO ("大于6")
ELSEIF $n<0
MACRO ECHO ("小于0")
ENDIF
- IF … ELSEIF…ELSE…ENDIF 流程分支
DECLARE n 5
IF $n>6
MACRO ECHO ("大于6")
ELSEIF $n<0
MACRO ECHO ("小于0")
ELSEIF EXPR ($n%2)==0
MACRO ECHO ("小于6的偶数")
ELSE
MACRO ECHO ("小于6的奇数")
ENDIF
循环控制
- 循环体 WHILE 判断条件 … END WHILE
DECLARE n 4
DECLARE i 1
WHILE $n>0
MACRO ECHO ("第${i}次循环,变量为${n}")
--n
++i
ENDWHILE
运行结果:
第1次循环,变量为4
第2次循环,变量为3
第3次循环,变量为2
第4次循环,变量为1
2. 循环体跳出命令
有两个命令跳出循环体,CONTINUE 跳出本次循环,BREAK 跳出整个循环
DECLARE n 10
DECLARE i 1
WHILE $n>0
--n
++i
MACRO ECHO ("第${i}次循环,变量为${n}")
IF $n==2
MACRO ECHO ("执行到变量为2就停止")
BREAK
ELSEIF $n==5
CONTINUE
ELSE
MACRO ECHO ("${i}${_NEWLINE}")
ENDIF
ENDWHILE
结果如下: 可以看到变量n等于2时BREAK执行跳出循环,n==5则跳过下面的语句直接进入下一个循环。
第2次循环,变量为9
2
第3次循环,变量为8
3
第4次循环,变量为7
4
第5次循环,变量为6
5
第6次循环,变量为5
第7次循环,变量为4
7
第8次循环,变量为3
8
第9次循环,变量为2
执行到变量为2就停止