現今的CPU的發展是越來越快,從386、486到今天的Pentium、PentiumⅡ,發展速度可謂快矣。然而,在CPU高速發展的同時,應用軟體的「體重」也隨之猛漲,從我學電腦時的幾K、幾十K,到今天的幾十兆、幾百兆,這變化連我自己都感到吃驚。 CPU的進步,使人們工作更加快速,效率大增,同時也養成了人們「不求簡」的不良習慣。筆者曾見過一位朋友正在寫一段程序,用的是VBA,程式碼如下:
WithActiveWindow
IfWindowState=wdWindowStateMaximizeThen'thisisthefirstpart!
MsgBox"ThisisaMaximizeWindow"
EndIf
IfWindowState=wdWindowStateMinimizeThen'thisisthesecondpart!
MsgBox"HereisaMinimizeWindow"
EndIf
IfWindowState=wdWindowStateNormalThen'thisisthethirdpart!
MsgBox"Nowhere,isaNormalWindow!"
EndIf
EndWith
乍看一下,似乎結構還挺漂亮,是個好程式。但細分析一下,你會發現,這段程式是個敗筆。因為這三段程式沒有實作應該具有的邏輯結構。我將這個意見告訴了這位朋友,他到很能聽進話,馬上修改了上述程序,具體程序代碼如下:WithActiveWindow
IfWindowState=wdWindowStateMaximizeThen'thisisthefirstpart!
MsgBox"ThisisaMaximizeWindow"
ElseIfWindowState=wdWindowStateMinimizeThen'thisisthesecondpart!
MsgBox"HereisaMinimizeWindow"
ElseIfWindowState=wdWindowStateNormalThen'thisisthethirdpart!
MsgBox"Nowhere,isaNormalWindow!"
EndIf
Endwith
我的那位朋友寫完這段程式後,對我笑笑,意思說:「怎麽樣?」我看了看這段程序,心想:如果WindowState不等於wdWindowStateMaximize的話,則要在判斷WindowState是否等於wdWindowStateMinimize,如果還不等於的話呢?則要繼續判斷是否等於wdWindowStateNormal,這樣下來,要闖三個「家門」方可進對,累不累?我看著不耐煩了,自己親自編了一段程式:
SelectCaseWindowState
CasewdWindowStateMaximize'thisisthefirstpart!
MsgBox"ThisisaMaximizeWindow"
CasewdWindowStateMinimize'thisisthesecondpart!
MsgBox"HereisaMinimizeWindow"
CasewdWindowStateNormal'thisisthethirdpart!
MsgBox"Nowhere,isaNormalWindow!"
EndSelect
正如你所看到的,這段程序簡練、易懂、可讀性強,相信會為程序增色不少。而且如果調試起來,你會發現它的其他優點。難怪朋友恍然大悟呢!
其實,使用哪一種判斷語句,也是有章可循的。例如:如果有兩種可能性,那麽可毫不猶豫地選擇If/Elseif;對於兩種或兩種以上的可能性,最好選擇SelectCase/EndSelect。多數情況下,如果只有一種唯一選擇性的關係,那麽,"ifthen/endif"將是最佳選擇。 ->