深入分析VB.NET條件語句中的兩類
經(jīng)過長時間學(xué)習(xí)VB.NET條件語句,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。在程序設(shè)計中,VB.NET條件語句能夠根據(jù)表達式的值來決定代碼的執(zhí)行流程。在VB.NET中,條件分支語句有兩種:If/Then/Else語句和Select/Case語句。
1. If/Then/Else語句
If/Then/Else語句是最常用的VB.NET條件語句。它的基本形式是:
- If condition Then statements1 [Else statements2 ]
它表示:如果condition為True,那么就執(zhí)行statements1;否則執(zhí)行statements2。根據(jù)時間顯示問候信息。
- <%
- If Hour(Now)<12 Then Response.Write ("Good morning! Cindy!")
- If Hour(Now)=12 Then Response.Write ("Good noon! Cindy!")
- If (Hour(Now)>12 And Hour(Now)<18) Then Response.Write ("Good afternoon! Cindy!")
- If Hour(Now)>=18 Then Response.Write ("Good evening! Cindy!")
- %>
在上面的例子中,函數(shù)Hour()是對給出的日期時間求它的小時數(shù),Now函數(shù)用于返回當(dāng)前的日期和時間。程序根據(jù)當(dāng)時的時間判定是上午、中午還是下午,分別給出問候信息。我們看到,這個寫法很簡單,但是這個程序為了顯示一條問候信息,要對Hour(Now)取值4次并且執(zhí)行4次比較才能完成,從效率上考慮并不好。If/Then/Else語句還可以寫成比較復(fù)雜的形式:
- If condition_1 Then
- statements_1
- [ElseIf condition_m Then statements_m
- [ElseIf condition_n Then…]]
- [Else statements_2]
- End If
這個語句可以檢測多個條件。第一種寫法要求語句在寫的時候要在一行中寫完,例如例2.4 的第2行的If語句。這條語句也可以采用第二種方法來寫,方法如下:
- If Hour(Now)<12 Then
- Response.Write ("Good Morning!Cindy!")
- End If
建議用戶采用后一種寫法,因為這種方法更結(jié)構(gòu)化,可讀性好。當(dāng)用戶在調(diào)試大型軟件的代碼時,會發(fā)現(xiàn),雖然看起來多寫了幾行語句,但好處卻是很大的。根據(jù)時間顯示問候信息。請注意這個例子的寫法與上個例子中的寫法在執(zhí)行效率上的區(qū)別。
- <%
- If Hour(Now)<12 Then
- Response.Write ("Good morning! Cindy!")
- ElseIf Hour(Now)=12 Then
- Response.Write ("Good noon! Cindy!")
- ElseIf Hour(Now)>=18 Then
- Response.Write ("Good evening! Cindy!")
- Else
- Response.Write ("Good afternoon! Cindy!")
- End If
- %>
上面的例子在執(zhí)行的過程中,對于當(dāng)前不同的時間,為了顯示問候信息,執(zhí)行的Hour(Now)的取值和比較的次數(shù)是不一樣的:最少只要1次,最多需要3次。
2. Select/Case結(jié)構(gòu)
當(dāng)程序中的條件比較復(fù)雜,而且是根據(jù)同一個表達式的不同值執(zhí)行不同操作的時候,用If/Then/Else語句來寫就顯得十分煩瑣。這時可以考慮采用Select/Case結(jié)構(gòu)來完成VB.NET條件語句。
Select/Case結(jié)構(gòu)為:
- Select Case testexpression
- Case condition_1
- statements_1
- [… Case Else statements_n]
- End Select
它表示:如果testexpression的值是Condition_1,就執(zhí)行statements_1,以此類推,如果都不符合,就執(zhí)行Statements_n。用Select/Case語句來實現(xiàn)問候信息的顯示。
- <%
- Select Case Hour(Now)
- Case 0,1,2,3,4,5,6,7,8,9,10,11
- Response.Write ("Good morning! Cindy!")
- Case 12
- Response.Write ("Good noon! Cindy!")
- Case 13,14,15,16,17
- Response.Write ("Good afternoon! Cindy!")
- Case Else
- Response.Write ("Good evening! Cindy!")
- End Select
- %>
很明顯,用這種方法來顯示問候信息要比用If/Then/Else語句清楚得多。因此,在選擇VB.NET條件語句的時候要考慮好采用什么方式,并認(rèn)真設(shè)置好條件。
【編輯推薦】