流程控制語句_第1頁
流程控制語句_第2頁
流程控制語句_第3頁
流程控制語句_第4頁
流程控制語句_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、流程控制語句流程控制語句u課前預(yù)習(xí)課前預(yù)習(xí)u將手機調(diào)到靜音將手機調(diào)到靜音u認(rèn)真做筆記認(rèn)真做筆記u及時完成作業(yè)及時完成作業(yè)上課要求上課要求u掌握常用流程控制語句的語法格式掌握常用流程控制語句的語法格式u掌握常用掌握常用流程控制語句流程控制語句的基本使用方法的基本使用方法學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)學(xué)習(xí)內(nèi)容學(xué)習(xí)內(nèi)容u beginendbeginend語句語句u ifelseifelse語句語句u casecase語句語句u whilewhile語句語句u gotogoto語句語句u returnreturn語句語句u waitforwaitfor語句語句相關(guān)內(nèi)容 使用使用T-SQLT-SQL語言編程的時候,常

2、常要利語言編程的時候,常常要利用各種流程控制語句進行用各種流程控制語句進行順序順序、分支分支控制轉(zhuǎn)控制轉(zhuǎn)移、移、循環(huán)循環(huán)等操作。等操作。 T-SQL T-SQL提供了一組流程控制語句,包括提供了一組流程控制語句,包括條件控制語句、無條件控制語句、循環(huán)語句條件控制語句、無條件控制語句、循環(huán)語句和返回狀態(tài)值給調(diào)用例程的語句。和返回狀態(tài)值給調(diào)用例程的語句。 BEGINENDBEGINEND語句語句用來用來定義語句定義語句塊,塊,即將即將 BEGINENDBEGINEND內(nèi)的所有內(nèi)的所有T-SQLT-SQL語句視為一個語句視為一個單元單元執(zhí)行執(zhí)行。 在在實際應(yīng)用中,實際應(yīng)用中,BEGINBEGIN和和

3、ENDEND必須必須成對成對出現(xiàn)出現(xiàn)。 BEGINEND BEGINEND語句的基本語法格式為:語句的基本語法格式為:BEGINBEGINT-SQLT-SQL語句或語句塊語句或語句塊 ENDENDBEGINEND語句 BEGINEND BEGINEND語句一般與語句一般與IFELSE, IFELSE, WHILEWHILE等語句聯(lián)用,當(dāng)判斷條件符合需要執(zhí)等語句聯(lián)用,當(dāng)判斷條件符合需要執(zhí)行的兩個或多個語句時,就需要使用行的兩個或多個語句時,就需要使用BEGINENDBEGINEND語句將這些語句封裝成一個語語句將這些語句封裝成一個語句塊。句塊。 IFELSE語句 IFELSEIFELSE語句是條

4、件判斷語句,用于語句是條件判斷語句,用于實現(xiàn)選擇結(jié)構(gòu)。實現(xiàn)選擇結(jié)構(gòu)。 IFELSEIFELSE語句的語法格式為:語句的語法格式為:IF IF 條件表達(dá)式條件表達(dá)式T-SQLT-SQL語句或語句塊語句或語句塊 ELSEELSET-SQLT-SQL語句或語句塊語句或語句塊 當(dāng)當(dāng)IFIF后的條件成立時執(zhí)行其后的后的條件成立時執(zhí)行其后的T-SQLT-SQL語句。語句。 當(dāng)條件不成立時,執(zhí)行當(dāng)條件不成立時,執(zhí)行ELSEELSE后的后的T-SQLT-SQL語句,其中語句,其中ELSEELSE子句是可選項。子句是可選項。 如果沒有如果沒有ELSEELSE子句,當(dāng)條件不成立則執(zhí)子句,當(dāng)條件不成立則執(zhí)行行IFI

5、F語句后面的其他語句。語句后面的其他語句。 IFELSE IFELSE語句允許嵌套使用,可以在語句允許嵌套使用,可以在IFIF之之后或在后或在ELSEELSE下面,嵌套另一個下面,嵌套另一個IFIF語句,嵌套級語句,嵌套級數(shù)的限制取決于可用內(nèi)存。數(shù)的限制取決于可用內(nèi)存。IF IF IF IF ELSE ELSEELSEELSE IF IF ELSE ELSE IF IF ELSE ELSEIF IF IF IFELSEELSE IF IF ELSE ELSE IF IF ELSE ELSE IFIF【例例】輸出三個整數(shù)中的最大數(shù)。輸出三個整數(shù)中的最大數(shù)。DECLARE number1 INT,

6、number2 INT,number3 DECLARE number1 INT,number2 INT,number3 INT,tempINT,temp INT INTSET number1=52SET number1=52SET number2=38SET number2=38SET number3=66SET number3=66IF number1number2IF number1number3IF number1number3 BEGIN BEGIN PRINT PRINT 最大數(shù)為:最大數(shù)為: PRINT number1 PRINT number1 END ENDELSEELSE B

7、EGIN BEGIN PRINT PRINT 最大數(shù)為:最大數(shù)為: PRINT number3 PRINT number3 END ENDCASE語句CASECASE語句用于實現(xiàn)選擇結(jié)構(gòu),與語句用于實現(xiàn)選擇結(jié)構(gòu),與IFELSEIFELSE語語句相比,它能更方便地實現(xiàn)多重選擇的情況,句相比,它能更方便地實現(xiàn)多重選擇的情況,從而從而避免多重避免多重的的IFELSEIFELSE語句的語句的嵌套嵌套,使得,使得程序的結(jié)構(gòu)更加簡練、清晰。程序的結(jié)構(gòu)更加簡練、清晰。 簡單簡單CASECASE語句語句CASECASE語句語句 搜索搜索CASE CASE 語句語句簡單簡單CASECASE語句:語句:語法格式為

8、語法格式為CASE CASE 表達(dá)式表達(dá)式WHEN WHEN 表達(dá)式表達(dá)式 THEN THEN 結(jié)果表達(dá)式結(jié)果表達(dá)式ELSE ELSE 結(jié)果表達(dá)式結(jié)果表達(dá)式 ENDEND執(zhí)行過程執(zhí)行過程:1 1、首先計算、首先計算CASECASE后面的表達(dá)式,然后按指定順序與每個后面的表達(dá)式,然后按指定順序與每個WHENWHEN子句后的表達(dá)式進行比較。子句后的表達(dá)式進行比較。2 2、如果相等,則執(zhí)行對應(yīng)的、如果相等,則執(zhí)行對應(yīng)的WHENWHEN后的結(jié)果表達(dá)式,并退出后的結(jié)果表達(dá)式,并退出CASECASE結(jié)構(gòu)。結(jié)構(gòu)。3 3、若、若CASECASE后的表達(dá)式后的表達(dá)式與所有與所有WHENWHEN后的表達(dá)式均不相等

9、,則執(zhí)行后的表達(dá)式均不相等,則執(zhí)行ELSEELSE后的結(jié)果表達(dá)式。后的結(jié)果表達(dá)式。4 4、若若CASECASE后的表達(dá)式值與所有后的表達(dá)式值與所有WHENWHEN后的表達(dá)式均不相等,且后的表達(dá)式均不相等,且ELSEELSE結(jié)結(jié)果表達(dá)式被忽略,則返回果表達(dá)式被忽略,則返回NULLNULL值。值。搜索搜索CASE CASE 語句語句語法格式為語法格式為CASE CASE WHEN WHEN 條件表達(dá)式條件表達(dá)式 THEN THEN 結(jié)果表達(dá)式結(jié)果表達(dá)式ELSE ELSE 結(jié)果表達(dá)式結(jié)果表達(dá)式ENDEND執(zhí)行過程執(zhí)行過程:1 1、首先測試、首先測試WHENWHEN后的條件表達(dá)式,若為真,則后的條件表

10、達(dá)式,若為真,則執(zhí)行執(zhí)行THENTHEN后的結(jié)果表達(dá)式,否則執(zhí)行下一個后的結(jié)果表達(dá)式,否則執(zhí)行下一個WHENWHEN后的條件后的條件表達(dá)式的測試。表達(dá)式的測試。2 2、若所有、若所有WHENWHEN后的條件表達(dá)式都為假,則后的條件表達(dá)式都為假,則執(zhí)行執(zhí)行ELSEELSE后的結(jié)果表達(dá)式。后的結(jié)果表達(dá)式。3 3、若所有、若所有WHENWHEN后的條件表達(dá)式后的條件表達(dá)式都為假,且都為假,且ELSEELSE結(jié)果表達(dá)式被忽略,則返回結(jié)果表達(dá)式被忽略,則返回NULLNULL值。值。例:根據(jù)學(xué)生考試成績輸出等級例:根據(jù)學(xué)生考試成績輸出等級declare score declare score tinyin

11、ttinyintset score=82set score=82printprint case case when score=90 when score=90 then then 該學(xué)生考試成績優(yōu)秀該學(xué)生考試成績優(yōu)秀 when score=80 then when score=80 then 該學(xué)生考試成績良好該學(xué)生考試成績良好 when score=70 then when score=70 then 該學(xué)生考試成績一般該學(xué)生考試成績一般 when score=60 then when score=60 then 該學(xué)生考試成績及格該學(xué)生考試成績及格 else else 該學(xué)生考試成績不及

12、格該學(xué)生考試成績不及格 end endWHILE語句 WHILEWHILE語句用于實現(xiàn)循環(huán)結(jié)構(gòu),其功能是在滿語句用于實現(xiàn)循環(huán)結(jié)構(gòu),其功能是在滿足條件的情況下會重復(fù)執(zhí)行足條件的情況下會重復(fù)執(zhí)行T-SQLT-SQL語句或語句塊。語句或語句塊。 當(dāng)當(dāng)WHILEWHILE后面的條件為后面的條件為真真時,重復(fù)執(zhí)行時,重復(fù)執(zhí)行BEGIN END BEGIN END 之間的語句塊。之間的語句塊。 通常將通常將CONTINUECONTINUE或或BREAKBREAK語句和語句和WHILEWHILE語句語句配合使用。配合使用。 BREAK BREAK子句和子句和BREAKBREAK語句的語句的區(qū)別區(qū)別如下:如下

13、: 1 1、CONTINUECONTINUE語句語句的功能是使程序跳出本次循的功能是使程序跳出本次循環(huán),開始執(zhí)行下一次循環(huán)。環(huán),開始執(zhí)行下一次循環(huán)。 例:統(tǒng)計全班數(shù)據(jù)庫這門課及格的人數(shù)例:統(tǒng)計全班數(shù)據(jù)庫這門課及格的人數(shù) 2 2、BREAKBREAK語句語句的功能是立即終止循環(huán),結(jié)束整的功能是立即終止循環(huán),結(jié)束整個個WHILEWHILE語句的執(zhí)行,并繼續(xù)執(zhí)行語句的執(zhí)行,并繼續(xù)執(zhí)行WHILEWHILE語句后的語句后的其他語句。其他語句。 例:統(tǒng)計全班數(shù)據(jù)庫這門課是否都及格了。例:統(tǒng)計全班數(shù)據(jù)庫這門課是否都及格了。 WHILE WHILE語句的語法格式為:語句的語法格式為:WHILE WHILE 條

14、件表達(dá)式條件表達(dá)式BEGINBEGINT-SQLT-SQL語句或語句塊語句或語句塊 BREAKBREAKT-SQLT-SQL語句或語句塊語句或語句塊 CONTINUE CONTINUET-SQLT-SQL語句或語句塊語句或語句塊 END END【例例】計算計算11001100之間所有的奇數(shù)之和。之間所有的奇數(shù)之和。DECLARE sum SMALLINT, i TINYINTDECLARE sum SMALLINT, i TINYINTSET SET i=1i=1SET sum=0SET sum=0WHILE WHILE i=100i=100 BEGIN BEGIN SET sum=sum+i

15、 SET sum=sum+i SET SET i=i+2i=i+2 END ENDPRINT 1100PRINT 1100之間所有的奇數(shù)之和為之間所有的奇數(shù)之和為: + STR(sum): + STR(sum)【例例】計算計算2 2的的8 8次方。次方。DECLARE value INT, i INTDECLARE value INT, i INTSET i=8SET i=8SET value =1SET value =1WHILE WHILE 1=11=1 BEGIN BEGIN SET value =value SET value =value * *2 2 SET i=i-1 SET i

16、=i-1 IF i=0 IF i=0 BREAK BREAK ELSE ELSE CONTINUE CONTINUE END ENDPRINT 2PRINT 2的的8 8次方為次方為: + STR(value): + STR(value)GOTO語句GOTOGOTO語句是語句是無條件轉(zhuǎn)移無條件轉(zhuǎn)移語句,用來改變程序的執(zhí)語句,用來改變程序的執(zhí)行流程。行流程。GOTOGOTO語句使程序無條件跳轉(zhuǎn)到指定的標(biāo)簽處繼續(xù)語句使程序無條件跳轉(zhuǎn)到指定的標(biāo)簽處繼續(xù)執(zhí)行,增加了程序設(shè)計的執(zhí)行,增加了程序設(shè)計的靈活靈活性,但同時性,但同時破壞破壞了程了程序序結(jié)構(gòu)化結(jié)構(gòu)化的特點,增加了程序測試與維護的難度的特點,增加

17、了程序測試與維護的難度語法格式為:語法格式為:GOTO GOTO 標(biāo)簽標(biāo)簽標(biāo)簽:標(biāo)簽:【例例】計算計算1-1001-100之間所有的偶數(shù)之和之間所有的偶數(shù)之和declare sum declare sum intint,i ,i intintset i=0set i=0set sum=0set sum=0label_1:label_1:set i=i+2set i=i+2set sum=sum+iset sum=sum+iif i100if ibab print print 第一個數(shù)比第二個數(shù)大第一個數(shù)比第二個數(shù)大 elseelse print print 第一個數(shù)比第二個數(shù)小第一個數(shù)比第二個

18、數(shù)小else else print print 兩個數(shù)相等兩個數(shù)相等修改代碼,用修改代碼,用casecase語句實現(xiàn)相同功能?語句實現(xiàn)相同功能?declare a int,b intdeclare a int,b intset a=662set a=662set b=398set b=398print print casecase when ab then when ab then 第一個數(shù)比第二個數(shù)大第一個數(shù)比第二個數(shù)大 when ab then when ab then between when ab then between長長 when ab then exists when a=5000 if product=5000 break break else else continue continue end endprint sequence+=+ltrim(str(product)print sequence+=+ltrim(str(product)計算計算1-1001-100之間能被之間能被7 7整除的整數(shù)之和整除的整數(shù)之和declare sum int,i intdeclare sum int,i intset i=7set i=7set sum=0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論