ssdiff:=DataModule3.adoquery2.fieldbyname('different').AsString ;
if (ssdiff='1') or (ssdiff='4') or (ssdiff='6') or (ssdiff='7') then
begin
.
.
.
end;为什么它只能判断等不等于1,如果ssdiff不是1的话后面都不能判断??

解决方案 »

  1.   

    if语句的判断是有顺序的,当你用or的时候,如果前面有条件成立了,后面的语句就会跳过不执行,这就是
        if (1=2) or (OpenDialog1.Execute) then ShowMessage('ok');
        if (1<2) or (OpenDialog1.Execute) then ShowMessage('ok');
    执行效果不同的区别单纯看你这句if的写法是没有问题的,如果ssdiff不是1的话应该会继续判断是不是等于4、6、7,当然有一个是的话后面的就不判断,而直接执行then里面的语句了
      

  2.   

    为什么它只能判断等不等于1,如果ssdiff不是1的话后面都不能判断??不是吧。。不是1自然要判断后面的。。
      

  3.   

    不得判断哈。如果一开始我的ssdiff为6的话,它就不能判断,不知道为什么??郁闷。