泰州二中汤蓉分支和循环结构分支和循环结构3.1运算符与表达式3.2If—Then分支语句3.3If—Then—Else分支语句3.4SelectCase多分支语句3.5For—Next循环结构3.6Do—Loop循环结构3.7While-Wend循环结构3.8循环的嵌套3.9Stop语句第3章分支和循环无论是面向过程的程序设计还是面向对象的程序设计,都要求按照结构化程序设计的思想和方法进行代码编写工作。结构化程序是指运用基本控制结构编写的程序。基本控制结构有三种,即顺序结构,分支控制结构和循环控制结构,本章重点讨论分支控制结构和循环控制结构的语法格式和用法。3.1运算符与表达式1关系运算符和关系表达式关系运算也称为比较运算,用来比较两个操作数的大小,通常用在程序的条件判断中。由操作数和关系运算符组成的表达式称为关系表达式,关系表达式的运算结果是一个逻辑值,即“真”和“假”,逻辑值也可以用符号常量Ture和False表示。另外,VisualBasic把任何非零的值都认为是逻辑值“真”,但一般以-1表示逻辑值“真”,以0表示逻辑值“假”。第3章分支和循环3.1运算符与表达式1关系运算符和关系表达式关系运算符用来表示两个或多个值或表达式这间的关系,一般使用语法为:exp1opexp2其中exp1、exp2是两个表达式,op是关系运算符。表达式通过比较运算符进行运算后,结果为Ture或False。[例3.1]求下列关系表达式的值。x+2=10当x=8时,表达式的结果为Ture(-1),否则为False(0)10050结果为False(0)“a””A”结果为Ture(-1)第3章分支和循环3.1运算符与表达式1关系运算符和关系表达式字符串数据按ASCII码、按字典顺序对各字符逐一进行比较。只有当两个字符串完全相同时,这两个字符串才完全相等。汉字字符大于西文字符。[例3.2]“ABCDE“”ABEFY”结果为Ture(-1)“asssdd”=“asseee”结果为False(0)“ABC123”=“ABC123”结果为Ture(-1)对单精度数或双精度数进行关系运算时,必须特别小心,因为机器的运算误差,可能会得出非常接近但不相等的结果。例如:1.0/3.0*3.0=1.0第3章分支和循环3.1运算符与表达式1关系运算符和关系表达式关系运算符的左右操作数一般要求类型相同。当类型不同时,VisualBasic会按形式值进行转换后再比较。[例3.3]176=“176”结果为Ture(-1)156=“abc”出现运行错误,类型不匹配数学上判断x是否在区间[a,b]时,习惯上写成a≤x≤b,但在VisualBasic中不能写成:a=x=b应写成:a=xAndx=b“And”是逻辑运算符“与”。关系运算中各个关系运算符的优先级是一样的,按从左到右的顺序进行运算。第3章分支和循环3.1运算符与表达式2逻辑运算符和逻辑表达式逻辑运算又称为布尔运算。逻辑运算符的左右操作数要求为逻辑值。用逻辑运算符连接两个或多个逻辑量组成的式子称为逻辑表达式或布尔表达式。VisualBasic中的逻辑运算符有以下6种:Not(非)“取反”运算。即由“真”变为“假”或由“假”变为“真”。Ture取反变成False,False取反变成Ture。[例3.4]38其值为False,而Not(38)的值为Ture。And(与)只有左右操作数的值都为Ture时,运算结果才为Ture,否则结果为False。操作数通常为关系表达式。[例3.5](38)And(59)结果为False38And1+2=3结果为Ture53And83结果为FalseabAndFalse不管a,b为何值,结果恒为False第3章分支和循环3.1运算符与表达式2逻辑运算符和逻辑表达式Or(或)只有两个操作数都为False时,运算结果才为False。如果左右操作数其中一个为Ture,结果为Ture。[例3.6]38Or56结果为Ture49Or1=2结果为Ture54Or33结果为FalseTureOrx=y不管x,y为何值,结果恒为TureXor(异或)当左右操作数相等,即都是Ture或者都是False时,运算结果为False,否则结果为Ture。[例3.7]83Xor56结果为False52Xor83结果为Ture52XorTure结果为False第3章分支和循环3.1运算符与表达式2逻辑运算符和逻辑表达式Eqv(等价)当左右操作数相等,即都是Ture或者都是False时,运算结果为Ture,否则结果为False。[例3.8]38Eqv1222结果为Ture52Eqv83结果为False52EqvTure结果为TureImp(蕴含)当左操作数为Ture,右操作数为False时,运算结果为False,其它三种情况均为Ture。例如:52Imp73结果为False52ImpTure结果为Ture在进行逻辑运算时要注意各个逻辑运算符的优先级,逻辑运算符的优先级由高到低为:Not→And→Or→Xor→Eqv→Imp第3章分支和循环3.2If—Then分支语句If—Then语句是最常用和比较简单的双分支语句。If—Then语句的格式格式1:If条件Then语句格式2:If条件Then语句块EndIfIf—Then语句的功能是当“条件”的值为“真”时选择要执行的一条或多条语句,否则直接往下执行。If—Then语句的执行过程:(1)对于格式1,首先计算“条件”的值,若“条件”成立(为“真”),则先执行本行中Then后边的语句,然后顺序往下执行。否则直接往下执行。(2)对于格式2,首先计算“条件”的值,若“条件”成立(为“真”),则先执行If语句下边的语句块,然后执行EndIf后面的语句。否则直接执行EndIf后面的语句。第3章分支和循环3.2If—Then分支语句[例3.9]编写程序,从键盘任意输入一个整数,计算该数的绝对值,然后输出。题目分析:该题需要进行单分支选择。当输入的数是负数时,需要计算它的相反数,否则不进行任何计算。最后输出绝对值。该题的流程图如图3-2所示。此题可以通过If—Then语句来解决,根据流程图可以设计一个窗体From1的单击事件Click()来运行程序,代码如下:PrivateSubForm_Click()DimxAsSingle,yAsSinglex=InputBox(“请输入x的值”)y=xIfx0Theny=-yPrint“x=”,xPrint“y=”,yEndSub该题的运行结果如图3-1所示。第3章分支和循环3.2If—Then分支语句[例3.9]编写程序,从键盘任意输入一个整数,计算该数的绝对值,然后输出。该题的运行结果如图3-1所示。图3-1执行结果第3章分支和循环3.3If—Then—Else分支语句If—Then—Else语句的格式格式1:If条件Then语句1Else语句2格式2:If条件Then语句块1Else语句块2EndIfIf—Then—Else语句的功能是当“条件”为“真”时,选择要执行的一条或多条语句,否则选择另外的一条或多条语句执行。If—Then—Else语句的执行过程:(1)对于格式1,首先计算“条件”的值,若“条件”成立(为“真”),则执行语句1,然后执行下一行的语句,否则执行语句2,然后再执行下一行的语句。(2)对于格式2,首先计算“条件”的值,若“条件”成立(为“真”),则执行语句块1,然后执行EndIf下边的语句,否则执行语句块2,然后再执行EndIf下边的语句。第3章分支和循环3.3If—Then—Else分支语句[例3.11]编写程序,计算某数学函数f(x),已知:f(x)=x3+2x2+3x+1,该函数定义在区间[-2,1]上,也就是说若x的取值大于1或小于-2则提示该函数无意义,否则计算函数值并输出。题目分析:该题的首要任务是判断x的值是否在区间[-2,1],若是则计算函数值,否则提示无意义,这是一个两分支选择。表达式x1orx-2和x=1andx=-2都可以作为条件使用,但我们的重点是求函数值,当表达式x=1andx=-2的值为“真”时x刚好在区间[-2,1]内,所以我们选用表达式x=1andx=-2作为条件进行程序设计。此题可以通过If—Then—Else语句的格式2来解决,设计一个命令按钮Command1的单击事件Click()来运行程序,代码如下:第3章分支和循环3.3If—Then—Else分支语句[例3.11]编写程序,计算某数学函数f(x),已知:f(x)=x3+2x2+3x+1,该函数定义在区间[-2,1]上,也就是说若x的取值大于1或小于-2则提示该函数无意义,否则计算函数值并输出。此题可以通过If—Then—Else语句的格式2来解决,设计一个命令按钮Command1的单击事件Click()来运行程序,代码如下:PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx=-2Andx=1Theny=x*x*x+2*x*x+3*x+1Text2.Text=yElseText2.Text=函数无意义EndIfEndSub第3章分支和循环3.3If—Then—Else分支语句[例3.11]编写程序,计算某数学函数f(x),已知:f(x)=x3+2x2+3x+1,该函数定义在区间[-2,1]上,也就是说若x的取值大于1或小于-2则提示该函数无意义,否则计算函数值并输出。该题的运行结果如图3-3所示。图3-3运行结果第3章分支和循环3.4SelectCase多分支语句如果要处理的问题需要从多个可能的方案中选择其中的一种,就要进行多分支选择,虽然用If语句的嵌套可以实现多分支选择,但是实现起来比较麻烦。所以,在VisualBasic中,多分支选择通常用SelectCase语句来实现。多分支选择结构的特点是:从多个选择结构中,选择第一个条件为真的分支完成操作。1SelectCase语句的格式SelectCase〈测试条件〉[Case表达式列表1[语句块1]][Case表达式列表2[语句块2]]…[Case表达式列表n[语句块n]][CaseElse[语句块n+1]]EndSelect第3章分支和循环3.4SelectCase多分支语句SelectCase语句的功能是根据测试条件的值,在一组相互独立的可选语句序列中挑选要执行的语句序列。SelectCase语句的执行过程:首先计算“测试条件”的值,然后从上到下,从左到右依次检查该值与哪一个Case子句中的“表达式列表”相匹配,如果找到了,则执行该Case子句下面的语句块,然后执行EndSelect之后的语句;如果所有的“表达式列表”均不符合要求,则执行CaseElse下面的语句块,然后执行EndSelect之后的语句,若此时语句中不含有CaseElse子句,则什么都不执行,直接转去执行EndSelect之后的语句。第3章分支和循环3.4SelectCase多分支语句[例3.13]某航空公司规定在旅游的旺季(7~9)月份,如果订票数超过20张,票价优惠15%,20张以下,优惠5%;在旅游的淡季(1~5)月份、10月份、11月份,如果订票数超过20张,票价优惠30%,20张以下,优惠20%;其它情况一律优惠10%。请设计程序,根据月份和订票张数决定票价的优惠率。题目分析:设月份为m,张数为n。设计一个命令按钮Command1的单击事件Click()来运行程序,代码如下:第3章分支和循环3.4SelectCase多分支语句[例3.13]PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,rAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)SelectCasemCaseIs=5,10,11
本文标题:分支和循环结构
链接地址:https://www.777doc.com/doc-3477902 .html