如果还有其他 - 如何在Delphi中运行?

时间:2014-04-29 13:28:55

标签: delphi if-statement

这段代码如何运作?

 if name <> '' then 

    begin 
      sql_1
    end

else if PARAMETRIC then 
    begin
         sql2
    end 
else 
    begin
        sql3
   end
 end;

执行由if或elseif选择的sql或者其他.....

name = is a string
PARAMETRIC = is a boolean
sql1, sql2, sql3 are different queries (sorry for forgot it :( )

2 个答案:

答案 0 :(得分:1)

简而言之:

  • 如果name不为空,则 sql_1将被执行
  • 如果name为空且PARAMETRICtrue,则 sql_2将被执行
  • 如果name为空且PARAMETRICfalse,则 sql_3将被执行

您始终可以添加begin / end语句,以使其看起来更加明显。

if name <> '' then 
    begin 
      sql_1
    end
else 
    begin
        if PARAMETRIC then 
            begin
                sql2
            end 
        else 
            begin
                sql3
            end;
    end;
end;

答案 1 :(得分:1)

你说(在评论中)你知道C#。好吧,在Delphi中,它的工作方式完全相同。你可以编写if ... else语句,并在else之后添加一个额外的条件。

在德尔福:

if condition1 then
begin // Open multi-line statement.
  Do1a;
  Do1b;
end
else if condition2 then
  Do2;

在C#中:

if (condition1)
{ // Open multi-line statement.
  Do1a;
  Do1b;
}
else if (condition2)
  Do2;

所以,虽然我并不真正理解这种混淆,但你的问题的答案是:不,他们没有全部被执行。如果condition1为true,那么&#39; elses&#39;不会被执行。如果condition1为false且condition2为true,则执行第二个语句(do2)。如果两者都为假,则不执行任何操作(或者在您的情况下,执行无条件else,因此您获得SQL3)。