條件語句

條件語句

條件語句是用來判斷給定的條件是否滿足(表達式值是否為0),並根據判斷的結果(真或假)決定執行的語句,選擇結構就是用條件語句來實現的。

條件語句可以給定一個判斷條件,並在程式執行過程中判斷該條件是否成立,根據判斷結果執行不同的操作,從而改變代碼的執行順序,實現更多的功能。VBA中的條件語句主要有If語句和Select Case語句兩種。

寫程式時,常常需要指明兩條或更多的執行路徑,而在程式執行時,允許選擇其中一條路徑,或者說當給定條件成立時,則執行其中某語句。在高級語言中,一般都要有條件語句。

基本介紹

  • 中文名:條件語句
  • 外文名:Conditional statement
  • 套用:計算機編程
條件語句介紹,條件語句作用,分類,條件語句套用,使用注意問題,

條件語句介紹

條件語句是一種根據條件執行不同代碼的語句,如果條件滿足則執行一段代碼,否則執行其他代碼。可將條件語句認為是有點像起因和結果。一種更好的類比方式可能是,使用一些父母可能會說的話,如下面的內容:
“如果你的房間是乾淨的,你會得到甜點。否則,你就得早點去睡覺。”
第一個起因是乾淨的房間,結果是可以得到甜點。第二個起因是不乾淨的房間,結果是必須早點上床休息。
在腳本上,可能需要創建類似的語句。可能如下面的內容一樣:
“如果變數mymoney的值大於1000,那么傳送警告告知我的金融狀況沒問題。否則,發出警告,告知我需要更多錢!”

條件語句作用

以編寫腳本為例,在編寫腳本中,條件語句是非常有用的。與其按照腳本內容執行每一行代碼,不如只有當特定條件滿足時,才執行腳本中的某些代碼。甚至可將單個條件擴展為條件語句的集合,用於決定某些代碼是否執行。
使用條件語句,可以告訴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”。
我並不駕駛Corvette或者Mustang,所以請將我從很時髦的人群中排除。而這些例子顯示了如何在執行操作之前通過檢查某些條件,達到更多的目的。這些類型的語句在腳本中稱為控制流

分類

If語句
If語句是可以測試一個或多個條件的成立與否,並在指定條件成立或不成立時分別執行不同的代碼,其結構主要有以下4種。
1.單行格式的If語句
單行格式的If語句可判斷一個或多個條件的成立與否,並在條件成立時執行一組代碼,如果條件不成立,則跳出當前語句繼續執行下一行代碼。單條件If語句僅在條件成立時執行特定操作,條件不成立時則跳出,其語法格式如下。
If condition Then statements
其中,condition為判斷條件,其最終結果為True或False(或者數值0和非0);statements為條件成立時執行的單條件或多條件語句,如果是多條件語句,各語句之間以英文冒號(:)分隔。單條件If語句執行流程如圖29.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),代碼運行結果如圖29-2所示。
條件語句
2.多行格式的If語句
在條件成立或不成立時都需要執行特定的操作,並且各項操作都包含有很多代碼,使用單行格式的I鼯句就顯得有些力不從心了,此時可使用多行(塊狀)格式的If語句。多行格式的If語句具有以下兩種語法格式。
If condition Then statementsEnd If
或者
If condition Then  statementsElse  elsestatementsEnd 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,”失敗”    EndIfEndSub
▲示例中代碼的說明
在以上代碼中,通過InputBox()函式接收用戶輸入的值,並判斷輸入值與系統保留值是否相同。如果相同,則打開“成功”對話框,如果不同,則顯示“失敗”對話框,代碼運行結果如圖29-3所示。
條件語句
3.多條件的lf語句
使用多條件If語句可以對多個單獨的條件進行判斷,並根據判斷結果執行不同的操作,If語句中對多個條件的判斷主要是通過ElseIf關鍵字來實現的,多條件的If語句的語法格式如下。
If condition Then  statementsElself condition-n Then  elseifstatements      ......Else  elsestatementsEnd If
其中,condition、statements、elsestatements參數與多行格式的If語句中的各對應參數相同,condition-n參數與condition參數的作用相同,表示同一個If語句中的第n個判斷條件。在多條件If語句中,代碼會從上到下依次測試condition和condition-n參數,當測試到一個condition成立時,即執行其緊臨Then後面的語句,完成後直接跳出If語句。多條件If語句執行的流程如圖29-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-nCase Else    elsestatementsEnd 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 SelectEnd Sub
▲示例中代碼的說明
在以上代碼中,通過InputBox()函式接收用戶輸入的值並將其轉換為Integer類 ,使用Select Case語句測試可能是4個值,根據用戶輸入的數值不同顯示不同的對話框,當用戶輸入的數值不在1~4範圍內時,顯示“錯誤”對話框。

條件語句套用

以下通過一些實例來講述條件語句的套用。
例:輸入年份,判斷是否為閏年。
根據例3.3的分析和圖3-4所示的流程,其程式如下:
/*
程式名稱: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程式時,使用條件語句應注意的問題。
1、實型量的計算誤差對邏輯判斷的影響
關係表達式中的實型量計算誤差有可能造成條件判斷的失誤,從而影響程式的可靠性。
2、為提高程式運行效率,應避免不必要的條件判斷
計算機進行邏輯判斷比一般的算術運算更費時間,減少不必要的條件判斷可以提高程式運行效率。
3、為改善程式的邏輯結構和增加易讀性,應儘量避免過多的If/then語句的使用(特別是與GOTO語句配合使用的情形)。

相關詞條

熱門詞條

聯絡我們