請問多重 If Then Else問題?

  •   2.3K 
  • 最後發表   pure4321  2018 十一月 23
pure4321 發文於   2018/11/23

If RateChange[1] > 3 Then 

If Open >= Close[1] Then  Ret = 1

Else

If Open > Close[1] Then  Ret = 1;

請問如上程式碼,若RateChange[1] < 3,也就是Else不會被執行,WHY?

但是如下卻正常,但是較麻煩,如果程式碼數量很多,似乎很複雜,

If RateChange[1] > 3 Then 

Begin

If Open >= Close[1] Then  Ret = 1;

End

 

Else

Begin

If Open > Close[1] Then  Ret = 1;

End;

 

XQ小幫手 發文於   2018/11/23

Hi pure4321,

您好,

If RateChange[1] > 3 Then 

If Open >= Close[1] Then  Ret = 1

Else

If Open > Close[1] Then  Ret = 1;

請問如上程式碼,若RateChange[1] < 3,也就是Else不會被執行,WHY?

因為以上的寫法 Else 被包在 If RateChange[1] > 3 中,如下整理後的程式碼,

所以 RateChange[1] 要大於 3,且 Open 要小於 Close[1] ,最後才會走到 Else 的判斷。

If RateChange[1] > 3 Then 
   If Open >= Close[1] Then  Ret = 1 Else If Open > Close[1] Then  Ret = 1;

但是如下卻正常,但是較麻煩,如果程式碼數量很多,似乎很複雜,

If RateChange[1] > 3 Then 

Begin

If Open >= Close[1] Then  Ret = 1;

End

Else

Begin

If Open > Close[1] Then  Ret = 1;

End;

可以改寫成以下程式碼:

If RateChange[1] > 3 Then Begin
   If Open >= Close[1] Then  Ret = 1;
End Else Begin
   If Open > Close[1] Then  Ret = 1;
End;

以上方向供參考,謝謝。

 

發表回覆
Close