程序有自己的邏輯結(jié)構(gòu)访递。上一篇只有順序結(jié)構(gòu)。此外還有分支和循環(huán)結(jié)構(gòu)同辣。
順序結(jié)構(gòu)是說拷姿,按照代碼語句的上下文順序執(zhí)行。分支結(jié)構(gòu)用于選擇性執(zhí)行語句旱函。循環(huán)結(jié)構(gòu)用于某一段代碼的循環(huán)執(zhí)行响巢。
分支結(jié)構(gòu)在其他編程語言里也叫條件語句。這個名詞其實算是從程序框圖那里來的棒妨。寫程序框圖的時候踪古,其實那個條件語句就是分支的圖。
Dim YourName
YourName=Inputbox("What`s your name?")
If YourName ="" Then
YourName="OK! You don`t want to tell me your name."
Else
YourName="Welcome靶衍! " + YourName
End if
Msgbox YourName
以上面這個分支結(jié)構(gòu)為例灾炭。分支結(jié)構(gòu)可以通過條件控制程序執(zhí)行方向或者執(zhí)行順序。如果想要實現(xiàn)多分支颅眶,可以使用Else IF +新條件蜈出,Else if要在Else語句的上方。
Else和Else if均為可選項
條件語句有一個特別重要的作用就是確保用戶不會在某些奇奇怪怪的輸入窗口輸入一些奇奇怪怪的東西涛酗。在VBS里面做注入這種操作我沒見過铡原,但是SQL注入,這個操作確實有商叹。
SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷或過濾不嚴(yán)燕刻,攻擊者可以在web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾上添加額外的SQL語句,在管理員不知情的情況下實現(xiàn)非法操作剖笙,以此來實現(xiàn)欺騙數(shù)據(jù)庫服務(wù)器執(zhí)行非授權(quán)的任意查詢卵洗,從而進(jìn)一步得到相應(yīng)的數(shù)據(jù)信息.
我建議大家,從學(xué)習(xí)編程開始弥咪,就要開始學(xué)習(xí)卡控用戶輸入过蹂。
if else分支中的條件可以是針對同一表達(dá)式求不同值,也可以是針對不同表達(dá)式求不同值聚至。
針對同一個表達(dá)式求不同值酷勺,還有另一個分支結(jié)構(gòu)Select語句。區(qū)別在于扳躬,Else if會對每個條件分別進(jìn)行運算脆诉,而如果針對同一個表達(dá)式甚亭,Select只會運算一次,然后從上向下依次與條件比較击胜。因此在針對同一個條件表達(dá)式存在不同結(jié)果時亏狰,盡量使用Select優(yōu)化VBS代碼。
Select的語法如下例
Select case VarTape(變量名)
Case vbstring
代碼塊
Case vbLong
代碼塊
Case vbBoolean
代碼塊
End Select