慎用IfThen函数!

来源:互联网 发布:绿色建筑分析软件 编辑:程序博客网 时间:2024/06/08 14:36

         从java/C转过来的coder,也许认为 (a==b? fun1():fun2())这种模式在pascal/delphi也有替代函数ifthen觉得很开心。

         但事实上却大错特错,ifthen是一个函数而不是表达式或运算符,pascal/delphi的函数处理顺序从右到左的,也就是说先运算false的表达式再运算true的表达式,然后再判断条件!

        如下代码:

var spt,ept:TPoint;w_step:Double;beginspt.X:=2;spt.Y:=3;ept.X:=2;ept.Y:=6 ;w_step:=ifthen(ept.x=spt.x,0, (ept.y-spt.y)/abs(ept.x-spt.x));caption:=FloatToStr(w_step)end;

        必然会报被零整除的错误。大家谨记啊!


0 0
原创粉丝点击