2014-04-29 638 views
-5

這段代碼是如何工作的?If Else If Else - 它在Delphi中如何工作?

if name <> '' then 

    begin 
     sql_1 
    end 

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

執行sql由if或ELSEIF或者選用.....

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

如果'name'不等於'',則第一個條件返回true,如果是下一個條件,則檢查布爾變量/常量。 – Cyclonecode

+0

確定如果名稱名稱條件爲真,第二個和第三個SQL將被創建或不創建? –

+1

http://en.wikipedia.org/wiki/Conditional_%28computer_programming%29 – Cyclonecode

回答

0

簡而言之:

  • 如果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

你說(在評論中)你知道C#。那麼,在德爾福它的作品完全一樣。您可以編寫if .. else語句,並在else之後添加一個額外的條件。

在Delphi:

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爲真,則不會執行'elses'。如果condition1爲false且condition2爲true,則執行第二條語句(do2)。如果兩者都是假的,則不執行任何操作(或者在你的情況下,無條件的else被執行,所以你得到SQL3)。