流程控制语句_第1页
流程控制语句_第2页
流程控制语句_第3页
流程控制语句_第4页
流程控制语句_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、流程控制语句流程控制语句u课前预习课前预习u将手机调到静音将手机调到静音u认真做笔记认真做笔记u及时完成作业及时完成作业上课要求上课要求u掌握常用流程控制语句的语法格式掌握常用流程控制语句的语法格式u掌握常用掌握常用流程控制语句流程控制语句的基本使用方法的基本使用方法学习目标学习目标学习内容学习内容u beginendbeginend语句语句u ifelseifelse语句语句u casecase语句语句u whilewhile语句语句u gotogoto语句语句u returnreturn语句语句u waitforwaitfor语句语句相关内容 使用使用T-SQLT-SQL语言编程的时候,常

2、常要利语言编程的时候,常常要利用各种流程控制语句进行用各种流程控制语句进行顺序顺序、分支分支控制转控制转移、移、循环循环等操作。等操作。 T-SQL T-SQL提供了一组流程控制语句,包括提供了一组流程控制语句,包括条件控制语句、无条件控制语句、循环语句条件控制语句、无条件控制语句、循环语句和返回状态值给调用例程的语句。和返回状态值给调用例程的语句。 BEGINENDBEGINEND语句语句用来用来定义语句定义语句块,块,即将即将 BEGINENDBEGINEND内的所有内的所有T-SQLT-SQL语句视为一个语句视为一个单元单元执行执行。 在在实际应用中,实际应用中,BEGINBEGIN和和

3、ENDEND必须必须成对成对出现出现。 BEGINEND BEGINEND语句的基本语法格式为:语句的基本语法格式为:BEGINBEGINT-SQLT-SQL语句或语句块语句或语句块 ENDENDBEGINEND语句 BEGINEND BEGINEND语句一般与语句一般与IFELSE, IFELSE, WHILEWHILE等语句联用,当判断条件符合需要执等语句联用,当判断条件符合需要执行的两个或多个语句时,就需要使用行的两个或多个语句时,就需要使用BEGINENDBEGINEND语句将这些语句封装成一个语语句将这些语句封装成一个语句块。句块。 IFELSE语句 IFELSEIFELSE语句是条

4、件判断语句,用于语句是条件判断语句,用于实现选择结构。实现选择结构。 IFELSEIFELSE语句的语法格式为:语句的语法格式为:IF IF 条件表达式条件表达式T-SQLT-SQL语句或语句块语句或语句块 ELSEELSET-SQLT-SQL语句或语句块语句或语句块 当当IFIF后的条件成立时执行其后的后的条件成立时执行其后的T-SQLT-SQL语句。语句。 当条件不成立时,执行当条件不成立时,执行ELSEELSE后的后的T-SQLT-SQL语句,其中语句,其中ELSEELSE子句是可选项。子句是可选项。 如果没有如果没有ELSEELSE子句,当条件不成立则执子句,当条件不成立则执行行IFI

5、F语句后面的其他语句。语句后面的其他语句。 IFELSE IFELSE语句允许嵌套使用,可以在语句允许嵌套使用,可以在IFIF之之后或在后或在ELSEELSE下面,嵌套另一个下面,嵌套另一个IFIF语句,嵌套级语句,嵌套级数的限制取决于可用内存。数的限制取决于可用内存。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【例例】输出三个整数中的最大数。输出三个整数中的最大数。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 最大数为:最大数为: PRINT number1 PRINT number1 END ENDELSEELSE B

7、EGIN BEGIN PRINT PRINT 最大数为:最大数为: PRINT number3 PRINT number3 END ENDCASE语句CASECASE语句用于实现选择结构,与语句用于实现选择结构,与IFELSEIFELSE语语句相比,它能更方便地实现多重选择的情况,句相比,它能更方便地实现多重选择的情况,从而从而避免多重避免多重的的IFELSEIFELSE语句的语句的嵌套嵌套,使得,使得程序的结构更加简练、清晰。程序的结构更加简练、清晰。 简单简单CASECASE语句语句CASECASE语句语句 搜索搜索CASE CASE 语句语句简单简单CASECASE语句:语句:语法格式为

8、语法格式为CASE CASE 表达式表达式WHEN WHEN 表达式表达式 THEN THEN 结果表达式结果表达式ELSE ELSE 结果表达式结果表达式 ENDEND执行过程执行过程:1 1、首先计算、首先计算CASECASE后面的表达式,然后按指定顺序与每个后面的表达式,然后按指定顺序与每个WHENWHEN子句后的表达式进行比较。子句后的表达式进行比较。2 2、如果相等,则执行对应的、如果相等,则执行对应的WHENWHEN后的结果表达式,并退出后的结果表达式,并退出CASECASE结构。结构。3 3、若、若CASECASE后的表达式后的表达式与所有与所有WHENWHEN后的表达式均不相等

9、,则执行后的表达式均不相等,则执行ELSEELSE后的结果表达式。后的结果表达式。4 4、若若CASECASE后的表达式值与所有后的表达式值与所有WHENWHEN后的表达式均不相等,且后的表达式均不相等,且ELSEELSE结结果表达式被忽略,则返回果表达式被忽略,则返回NULLNULL值。值。搜索搜索CASE CASE 语句语句语法格式为语法格式为CASE CASE WHEN WHEN 条件表达式条件表达式 THEN THEN 结果表达式结果表达式ELSE ELSE 结果表达式结果表达式ENDEND执行过程执行过程:1 1、首先测试、首先测试WHENWHEN后的条件表达式,若为真,则后的条件表

10、达式,若为真,则执行执行THENTHEN后的结果表达式,否则执行下一个后的结果表达式,否则执行下一个WHENWHEN后的条件后的条件表达式的测试。表达式的测试。2 2、若所有、若所有WHENWHEN后的条件表达式都为假,则后的条件表达式都为假,则执行执行ELSEELSE后的结果表达式。后的结果表达式。3 3、若所有、若所有WHENWHEN后的条件表达式后的条件表达式都为假,且都为假,且ELSEELSE结果表达式被忽略,则返回结果表达式被忽略,则返回NULLNULL值。值。例:根据学生考试成绩输出等级例:根据学生考试成绩输出等级declare score declare score tinyin

11、ttinyintset score=82set score=82printprint case case when score=90 when score=90 then then 该学生考试成绩优秀该学生考试成绩优秀 when score=80 then when score=80 then 该学生考试成绩良好该学生考试成绩良好 when score=70 then when score=70 then 该学生考试成绩一般该学生考试成绩一般 when score=60 then when score=60 then 该学生考试成绩及格该学生考试成绩及格 else else 该学生考试成绩不及

12、格该学生考试成绩不及格 end endWHILE语句 WHILEWHILE语句用于实现循环结构,其功能是在满语句用于实现循环结构,其功能是在满足条件的情况下会重复执行足条件的情况下会重复执行T-SQLT-SQL语句或语句块。语句或语句块。 当当WHILEWHILE后面的条件为后面的条件为真真时,重复执行时,重复执行BEGIN END BEGIN END 之间的语句块。之间的语句块。 通常将通常将CONTINUECONTINUE或或BREAKBREAK语句和语句和WHILEWHILE语句语句配合使用。配合使用。 BREAK BREAK子句和子句和BREAKBREAK语句的语句的区别区别如下:如下

13、: 1 1、CONTINUECONTINUE语句语句的功能是使程序跳出本次循的功能是使程序跳出本次循环,开始执行下一次循环。环,开始执行下一次循环。 例:统计全班数据库这门课及格的人数例:统计全班数据库这门课及格的人数 2 2、BREAKBREAK语句语句的功能是立即终止循环,结束整的功能是立即终止循环,结束整个个WHILEWHILE语句的执行,并继续执行语句的执行,并继续执行WHILEWHILE语句后的语句后的其他语句。其他语句。 例:统计全班数据库这门课是否都及格了。例:统计全班数据库这门课是否都及格了。 WHILE WHILE语句的语法格式为:语句的语法格式为:WHILE WHILE 条

14、件表达式条件表达式BEGINBEGINT-SQLT-SQL语句或语句块语句或语句块 BREAKBREAKT-SQLT-SQL语句或语句块语句或语句块 CONTINUE CONTINUET-SQLT-SQL语句或语句块语句或语句块 END END【例例】计算计算11001100之间所有的奇数之和。之间所有的奇数之和。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之间所有的奇数之和为之间所有的奇数之和为: + 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语句是语句是无条件转移无条件转移语句,用来改变程序的执语句,用来改变程序的执行流程。行流程。GOTOGOTO语句使程序无条件跳转到指定的标签处继续语句使程序无条件跳转到指定的标签处继续执行,增加了程序设计的执行,增加了程序设计的灵活灵活性,但同时性,但同时破坏破坏了程了程序序结构化结构化的特点,增加了程序测试与维护的难度的特点,增加

17、了程序测试与维护的难度语法格式为:语法格式为:GOTO GOTO 标签标签标签:标签:【例例】计算计算1-1001-100之间所有的偶数之和之间所有的偶数之和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 第一个数比第二个数大第一个数比第二个数大 elseelse print print 第一个数比第二个数小第一个数比第二个

18、数小else else print print 两个数相等两个数相等修改代码,用修改代码,用casecase语句实现相同功能?语句实现相同功能?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 第一个数比第二个数大第一个数比第二个数大 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整除的整数之和整除的整数之和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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论