Section 13-Halcon实战宝典之控制循环算子

在编程中,若你想在程序中画一万个圆,如果只能用一个可怕的方式去做,写一万行代码。那些千方百计为了提高效率的语言设计者肯定不会允许这样的事发生,因此便有了循环语句。

所以在系统开发中循环语句有着极其重要的作用!通过它,你可以直观地感受计算机的威力。

一、条件语句

条件,内为计算成an integer or boolean value的表达式。表达式的值1则条件为真,否则为假。

1、if()… endif:条件为真时,执行条件后的内容,否则转到endif。.

2、if ()...else...endif:条件为真,执行if...else部分,否则执行else...endif,典型的选择条件语句。

3、elseif:相当于算子2的else部分,但是它允许测试一个附件条件。

例如:if()...elseif ()...endif当条件1为假条件2为真时,执行条件2后面的部分。在语法结构上等价于:

if ()

...

else if ()

...

endif

二、循环控制语句

1、while()... endwhile:循环控制结构,当条件为真时,执行循环体。可以利用operator continue和break操作来重新开始或立刻终止循环。

2、 repeat...until():循环体至少被执行一次,直到满足条件时退出。

3、for := to by ...endfor

例:

old_x := 0

old_y := 0

dev_set_color ('red')

dev_set_part(0, 0, 511, 511)

for x := 1 to 511 by 1

y := sin(x /511.0 * 2 * 3.1416 * 3) * 255

disp_line (3600,-old_y+256, old_x, -y+256, x) //在窗体画直线

old_x := x

old_y := y

endfor

4、 continu:强制执行下一个循环。

例如:i := |Images| //多个图像数据

while (i)

Image := Images[i]

count_channels (Image, Channels) //计算图片通道数

if (Channels # 3)

continue //强制执行下一个循环

endif

* extensive processing of color image follows

endwhile

5、break:强制退出循环。

例如:Number := |Regions| //多个区域数据

AllRegionsValid := 1

* check whether all regions have an area

for i := 1 to Number by 1

ObjectSelected := Regions[i]

area_center (ObjectSelected, Area, Row,Column) //计算区域面积大小

if (Area > 30)

AllRegionsValid := 0

break () //强制退出循环

endif

endfor

三、其他

1、stop:终止后面的循环,点击Step Over or Run button继续。

2、exit:终止Hdevelop程序段。

3、return:从当前的程序返回到正在呼叫的算子。

4、try ... catch ... endtry:异常算子处理句柄

5、throw:允许处理用户定义的意外情况。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180326G04QNM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券