首页/文章/ 详情

RationalDMIS高级指令(条件判断 IF)

1年前浏览333

   编写测量程序时,有时需要满足一些给定条件测量程序才可执行条件中的语句,否则执行条件外的其它程序。


 如果想改变程序的运行方向就要使用跳转语句,在DMIS里有几种命令可实现有条件的跳转,条件跳转就是必须满足给定的条件程序才能跳转。


DMIS5.2标准如下:



     

   根据一个逻辑表达式的条件执行转移程序的控制。表达式可以由先前定义的变量、算数表达式或逻辑表达式构成。嵌套的IF...ENDIF块也是支持的。


    一个逻辑IF必须以一个IF语句开始和以一个ENDIF语句结束.ELSE语句是可选的,然而,当IF语句是嵌套的时,在一个逻辑IF序列中可能有几个ELSE语句。当IF语句是嵌套的时,应该小心

为每一个IF语句包含相应的ENDIF语句。JUMPTO语句可以被用在一个IF块中任何地方转移控制到块的外面。

    如果逻辑表达式求值为真(.TRUE.),程序控制转移到跟随在IF语句后的语句和执行,直到遇见一个ELSE或ENDIF,如果逻辑表达式是伪(.FALSE.),程序控制转移到跟随在下面出现的ELSE后的语句。如果一个ENDIF在一个ELSE之前被遇见,条件结束。


RationalDMIS高级指令(IF条件语句)



IF…ENDIF程序块


   IF语句是执行判断的,它能够判断是否满足某个条件,然后执行相应的动作。


   IF语句以IF开头,ENDIF结尾,它可以使程序在满足规定的逻辑条件下跳转到其他行。逻辑条件由已定义的变量、算法或逻辑表达式组成。IF语句允许嵌套,语句格式如下:

 

IF/(表达式)

$$ DMIS程序

ENDIF

 

表达式:已定义的变量、算法或逻辑表达式


   打开RationalDMISDMIS编辑器,找到DMIS模板,里面其他分项的高级语言中IF条件分支,拖放到编辑器里就可以用了。



DMIS5.2标准 示例如下:

 


  



RationalDMIS7.0高级指令程序案例:


示例一: 

     如果变量V1的数值比V2的大,就会弹出提示“AB大”。


DECL/COMMON,DOUBLE,V1


V1 = ASSIGN/2


DECL/COMMON,DOUBLE,V2


V2 = ASSIGN/1


IF/ (V1.GT.V2)


  TEXT/OPER,'A比B大'

  

ENDIF



示例二: 


       圆2直径是否在公差之内,超差继续测量圆2。



示例三: 


  下面的程序模拟登陆过程,密码正确提示可以登陆,错误的话要重新输入密码。


(LOGIN)

KNPTN1 = PROMPT/TITLE,'登录',TEXT,'姓名:',EDIT,KNPTC1,TEXT,'密码:',EDIT,KNPTC2

IF/(KNPTC1.EQ.'DAVE').AND.(KNPTC2.EQ.'1234')

   TEXT/OPER, '登录成功!'

ELSE

   TEXT/OPER, '姓名或密码错误,请重新输入!'

   JUMPTO/(LOGIN)

ENDIF



示例四:


  下面的的程序让坐标机沿S型路径走一个矩形区域,注意“AND”运算符的用法。


DECL/LOCAL,DOUBLE,XVAR,YVAR

(STARTGO)

GOTO/XVAR,YVAR,50

XVAR=ASSIGN/XVAR+100

IF/(XVAR.EQ.500)

XVAR=ASSIGN/0

YVAR=ASSIGN/YVAR+100

ENDIF

IF/((XVAR.LE.500).AND.(YVAR.LE.500))

JUMPTO/(STARTGO)

ENDIF


示例五:


         输入是否继续测量!


示例六:


IF/(NCYCLE .EQ. 10)

$$instructions

ELSE

$$instructions

ENDIF

$$ instructions为输入的表达式,在NCYCLE的值和10比较后选择执行哪一句表达式。


来源:RationalDMIS测量技术
UM控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-07-02
最近编辑:1年前
山涧果子
大专 签名征集中
获赞 203粉丝 48文章 1203课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈