-
條件語句
鎖定
條件語句可以給定一個判斷條件,並在程序執行過程中判斷該條件是否成立,根據判斷結果執行不同的操作,從而改變代碼的執行順序,實現更多的功能。VBA中的條件語句主要有If語句和Select Case語句兩種。
[2]
寫程序時,常常需要指明兩條或更多的執行路徑,而在程序執行時,允許選擇其中一條路徑,或者説當給定條件成立時,則執行其中某語句。在高級語言中,一般都要有條件語句。
- 中文名
- 條件語句
- 外文名
- Conditional statement
- 應 用
- 計算機編程
條件語句語句介紹
條件語句是一種根據條件執行不同代碼的語句,如果條件滿足則執行一段代碼,否則執行其他代碼。可將條件語句認為是有點像起因和結果。一種更好的類比方式可能是,使用一些父母可能會説的話,如下面的內容:
第一個起因是乾淨的房間,結果是可以得到甜點。第二個起因是不乾淨的房間,結果是必須早點上牀休息。
在腳本上,可能需要創建類似的語句。可能如下面的內容一樣:
條件語句語句作用
以編寫腳本為例,在編寫腳本中,條件語句是非常有用的。與其按照腳本內容執行每一行代碼,不如只有當特定條件滿足時,才執行腳本中的某些代碼。甚至可將單個條件擴展為條件語句的集合,用於決定某些代碼是否執行。
使用條件語句,可以告訴JavaScript做到像下面的事情:
·如果變量youmame等於Jonh,那麼將“hello to John”輸出到頁面。否則輸出“hello to Unknow Surfer”並將內容加粗。
·如果變量mycar等於Corvette或Mustang,那麼向瀏覽器發出警告“Cool car”。如果變量mycar等於Covette,並且變量yourname等於Marty,那麼向瀏覽器發出警告“Marty is cool and drives a cool car”。否則,向瀏覽者發出警告“Unknown Surfer drives a car of some sort”。
條件語句語句分類
If語句
1.單行格式的If語句
單行格式的If語句可判斷一個或多個條件的成立與否,並在條件成立時執行一組代碼,如果條件不成立,則跳出當前語句繼續執行下一行代碼。單條件If語句僅在條件成立時執行特定操作,條件不成立時則跳出,其語法格式如下。
If condition Then statements
其中,condition為判斷條件,其最終結果為True或False(或者數值0和非0);statements為條件成立時執行的單條件或多條件語句,如果是多條件語句,各語句之間以英文冒號(:)分隔。單條件If語句執行流程如圖1所示。
Sub Test() Dim a As Integer,b As Integer,c As Integer a=1024 b=CInt(InputBox("請輸入除數的值:","輸入參數")) If b=0 Then MsgBox"除數不能為0",vblnformation,"錯誤": End c=a/b MsgBOX"1024除以"& b &"的結果是: " & c,64,"結果" End Sub
▲示例中代碼的説明
在以上代碼中,通過InputBox()函數接收用户輸入的值並將其轉換為Integer類型,通過單條件If語句判斷輸入的值是否為0,當值為0時通過對話框顯示錯誤信息,並結束程序運行。由於在條件成立時需要執行兩條語句,因此,Then關鍵字右側的兩條語句使用英文冒號分隔;當條件不成立時,直接執行If語句下一行代碼(即c=a/b),代碼運行結果如圖2所示。
[2]
2.多行格式的If語句
在條件成立或不成立時都需要執行特定的操作,並且各項操作都包含有很多代碼,使用單行格式的I鼯句就顯得有些力不從心了,此時可使用多行(塊狀)格式的If語句。多行格式的If語句具有以下兩種語法格式。
If condition Then statements End If
或者
If condition Then statements Else elsestatements End If
以上兩種格式中的condition參數和statements參數與單行格式的If語句中對應的參數作用相同,第二種語法格式中的elsestatements參數是包含在If語句中當條件不成立時執行的操作。第一種語法格式與單行格式的If語句作用相同,僅對條件成立時進行處理,但該結構比單行格式的結構更易於理解閲讀和後期維護。
Sub LoginO Dim User As String,Password As String User=InputBox(”輸入用户名:”,”登錄”) Password=InputBox(”輸入密碼:”,”登錄”) If User=”Admin”And Password=”admin”Then MsgBox”歡迎您”&User&”l”.vbOKOnly,”成功” Else MsgBox”用户名或密碼錯誤!”,vbRetryCancel,”失敗” EndIf EndSub
▲示例中代碼的説明
3.多條件的lf語句
使用多條件If語句可以對多個單獨的條件進行判斷,並根據判斷結果執行不同的操作,If語句中對多個條件的判斷主要是通過ElseIf關鍵字來實現的,多條件的If語句的語法格式如下。
If condition Then statements Elself condition-n Then elseifstatements ...... Else elsestatements End If
其中,condition、statements、elsestatements參數與多行格式的If語句中的各對應參數相同,condition-n參數與condition參數的作用相同,表示同一個If語句中的第n個判斷條件。在多條件If語句中,代碼會從上到下依次測試condition和condition-n參數,當測試到一個condition成立時,即執行其緊臨Then後面的語句,完成後直接跳出If語句。多條件If語句執行的流程如圖4所示。
4.嵌套If語句
除了使用多條件If語句來判斷多個獨立條件外,還可以使用嵌套If語句來實現相似的目的。嵌套If語句就是在一個塊結構的If語句內部包含一個完整的If語句。
需要注意的是,無論嵌套多少If語句,每一個If...Then語句必須有一個對應的End If語句,否則會產生語法錯誤。
Select Case語句
Select Case語句可以根據一個條件表達式的值,選擇多組語句中的一組來執行,通常用於判斷用户的操作,並根據用户的不同操作執行不同的代碼。
Select Case語句的語法格式如下。
Select Case testexpression Case expressionlist-n statements-n Case Else elsestatements End Select
其中,testexpression為必選參數,表示參與測試的條件,可以是任意數值表達式或字符串表達式;expressionlist.n表示可能的testexpression列表,有幾個Case就需要幾個expressionlist;elsestatements是當所有expressionlist中都沒有testexoression的佰時執行的語句。
Sub Menu() Dim UserCh As Integer UserCh=CInt(InputBox(”請輸入您的選項(1~4):”,”選擇操作”,1“1”) Select Case UserCh Case l MsgBox”你選擇了1選項,正在為您查詢當前餘額……”,64,”處理中” Case 2 MsgBox”你選擇了2選項,正在查詢您的當月費用……”,64,”處理中” Case 3 MsgBox’t你選擇了3選項,正在為您查詢費用清單……”,64,”處理中” Case 4 MsgBox”你選擇了4選項,感謝您使用本系統!”,64,”退出” Case Else MsgBox”請輸入正確的選項”,vbRetryCancel,”錯誤” End Select End Sub
▲示例中代碼的説明
在以上代碼中,通過InputBox()函數接收用户輸入的值並將其轉換為Integer類 ,使用Select Case語句測試可能是4個值,根據用户輸入的數值不同顯示不同的對話框,當用户輸入的數值不在1~4範圍內時,顯示“錯誤”對話框。
[2]
條件語句語句應用
以下通過一些實例來講述條件語句的應用。
例:輸入年份,判斷是否為閏年。
根據例3.3的分析和流程,其程序如下:
/*
程序名稱:ex3-21
建立日期:2015-8-20
程序功能:判斷閏年
*/
#include<stdio.h> #include<stdlib.h> int main() { int year; scanf(”%d”.&year): if(year<=O) { printf(”數據輸入錯誤!\n”); exit(0): } if(year%4==O&year%100!=0//year%400==0) printf(”%d是閏年!\n”,year); else printf(“%d不是閏年!\n”,year) return 0; }
程序運行結果:
①輸入2()13按Enter鍵
2013不是閏年!
②輸入2012按Enter鍵
2012是閏年!
③輸入100按Enter鍵
條件語句注意問題
條件語句(IF/THEN語句)是算法語言中實現邏輯判斷的重要語句,它在程序設計中有着廣泛的應用。正確、合理地使用條件語句對於保證程序的可靠性、提高程序運行效率以及改善程序的邏輯結構都有重要意義.以下分三個方面談談在設計BASIC程序時,使用條件語句應注意的問題。
[5]
1、實型量的計算誤差對邏輯判斷的影響
關係表達式中的實型量計算誤差有可能造成條件判斷的失誤,從而影響程序的可靠性。
2、為提高程序運行效率,應避免不必要的條件判斷
計算機進行邏輯判斷比一般的算術運算更費時間,減少不必要的條件判斷可以提高程序運行效率。