收藏 分销(赏)

运算符和表达式.pptx

上传人:xrp****65 文档编号:13187801 上传时间:2026-02-01 格式:PPTX 页数:199 大小:1.30MB 下载积分:10 金币
下载 相关 举报
运算符和表达式.pptx_第1页
第1页 / 共199页
运算符和表达式.pptx_第2页
第2页 / 共199页


点击查看更多>>
资源描述
,五,、,运算符和表达式,1,、运算符,运算符,是代表某种运算功能的符号,它标明所要进行的运算。,根据不同的运算,,VBA,中的运算符可分为,4,种类型:,算术运算,符,关系,运算符,(,比较运算符,),字符串链接运算符,逻辑运算符。,(,1,)算术运算符,算术运算符用来执行简单的算术运算。,VBA,提供了,8,种算术运算符(详见教材,P249,)。,运算符,名 称,优 先 级,说 明,乘幂运算,1,计算乘方和方根,-,取负运算,2,*,乘法运算,3,/,浮点除法,3,标准除法,结果为浮点数,整数除法,4,整数除法,结果为整数,Mod,取模运算,5,求余数,+,加法运算,6,-,减法运算,6,算术运算符两边的操作数都应该是数值型,如果是数字字符或逻辑型,则系统,自动将其转换成数值型,后再进行运算。,指数运算(,),求一个数的某次方。,在运用乘方运算符时,只有当指数为整数值时,底数才可以为负数。,【,例,】,3 4 2 (1/2),81 1.4142,(-2)3(-2)(1/,2,),-8,出错,True 3Flase (1/2),-10,整数除法(,),对两个操作数做除法运算并返回一个,整数,。,整数除法的操作数一般为整型,当操作数是小数时,首先被,四舍五入为整型或长整型,,然后再进行整除运算。,如果运算结果是小数,系统自动将其,截断,为整型或长整数,,不再进行四舍五入处理。,【,例,】,11/3,3.666667 (,浮点除法,),13.5,3,4 (,整数除法,操作数先被四舍五入,),11 3,3 (,整数除法,运算结果不做四舍五入,),7 3,2 (,字符串先转换为数值型,),5 2*3,0 (,乘法的运算级别高于整除,),3.56 7/3.5,2 (,浮点除法的级别高于整除,),取模运算(,Mod,),对两个操作数做除法运算并返回,余数,。,如果操作数有小数时,系统自动将其,四舍五入为整数后再进行运算,。,结果的正负号,与,被除数,相同,。,【,例,】,11 Mod 3,2,12 Mod 3,0,-11 Mod 3,-2,11 Mod -3,2,11.4 Mod 3,2,11.56 Mod 6.2,0,算术运算符两边的操作数都应该是数值型,如果是,数字字符、逻辑型,则系统自动将其转换成数值型,后再进行运算;如果是日期型可以加(减)一个整数,表示后推(前推)若干天。,【,例,】,123+2 True+20,125 19,#2012-01-01#+1#12/31/1899#-1,#2012-1-2#0:00:00,#2012-10-1#-#2012-10-2#,-1,#1900-1-1#+#1900-1-2#,#1900-1-4#,(,3,)字符链接串,运算符,字符串运算符就是将两个字符串连接起来生成一个新的字符串。,字符串运算符有两个:,&,运算符、,+,运算符,&,运算符,用于,强制,两个字符串的连接,。,由于符号,&,还是长整型定义符,在字符串变量使用运算符,&,时,,变量与运算符之间必须加一个空格,。,【,例,】,x,&=,123,x,&#1949-10-1,#,作,为长整型定义,符,作,为连接运算,符,运算符,&,两边的操作数可以是字符型、数值型或日期型。进行连接操作前先将操作数的数据类型转换为字符型,然后再进行字符串的连接。,【,例,】,123&ABC,aa=123,aa&ABC,aa&ABC,123ABC,定,义,变,量并赋,值,123ABC,出错,+,运算符,用于连接两个字符串,形成一个新的字符串。,运算符两边的操作数必须都是,字符串,。,由于符号“,+,”,还是算术运算符,因此:,如,果两边的操作数都是数值型,则进行普通的加法运算。,如,果一个是数值,型,,另一个为数字字符串,则系统自动将数字字符串转化为数值,然后进行加法运算。,如,果一个是数值,型,,另一个为非数字字符串,则出错。,【,例,】,ABC&123 ABC +123,ABC123,ABC123,12.5&24 12.5 +24,12.524 36.5,A12.5&24 A12.5 +24,A12.524,出错,123.5&#2001-09-11#,123.52001-9-11,12.5&#2011-10-01#,12.52011-10-1,#,2011-09-01#+10#9999-12-31#+1,2011-9-11,溢出,运算,符,&,与,+,的比较,日,期所能表示的范围:,100,年,1,月,1,日至,9999,年,12,月,31,日,注:,年份如果是两位数,0 29,之间,系统解释为,2000 2029,年,30 99,之间,系统解释为,1930 1999,年,在,VBA,中,,,运算,符,+,既,可用作加法运算符,也,可以用,作字符串运算符,,但运算符,&,专,门作为字符串运算符。因此在有些情况下,,用,&,比用,+,可,能更为安全。,(,3,)关系运算符,关系运算符用于对两个表达式比较大小,比较的结果将是一个逻辑值,即:若关系成立,则为真(,True,);反之则为假(,False,)。,VBA,提供了,6,种关系运算符(见教材,P271,)。,名 称,运算符,举例,说明,等于,=,abc=abd,False,大于,大于等于,小于等于,小于,不等于,=,=,abd,45123,45=#2011-1-1#,abcd ABCD,False,True,True,False,False,在使用关系运算符时应注意以下原则:,如果参与比较的两个操作数都是数值型,则按它们的大小进行比较。,如果参与比较的两个操作数都是字符型,则从左到右一一对应比较。,字母不区分大小写,且大于数字字符,。,汉字字符按汉语拼音比较大小,且大于西文字符。,字,符的,大,小顺序:,汉,字字符,字母,(,按字母顺序且大小写相同,),数字,空,格,注意,教,材,P271,的,叙,述。,在,VBA,中,允许,部分,不同数据类型的量进行比较,如:,数值型与逻辑型,数值型与日期型,日期型与逻辑型,日期型与数字字符,数值型与数字字符,注:,均转换为数值型后再进行比较。,(,4,)逻辑运算符,逻辑运算符用于对两个逻辑量进行逻辑运算,其结果仍然是一个逻辑值。,VBA,的逻辑运算主要为:,AND,(与运算),OR,(或运算),NOT,(非运算,),逻辑运算符,说 明,Not,当,Not,连接的表达式为真时,整个表达式的值为假,And,当,And,连接的表达式均为真时,整个表达式的值为真,否则为假,Or,当,Or,连接的表达式均为假时,整个表达式的值为假,否则为真,各个逻辑运算符的真值表,X,Y,Not X,X And Y,X Or Y,True True,True False,False True,False False,False True True,False False True,True False True,True False False,P271,2,、表达式,(,1,)表达式的组成,表,达式由字面值、常量、变量、运算符、函数、标识符、逻辑量和括号等按一定的规则组成。,表,达式通过运算得出结果,运算结果的数据类型由操作数的数据类型和运算符共同决定。,在算术运算表达式中,参与运算的操作数可能具有不同的数据精度,,VBA,规定:,运算结果的数据类型采用精度高的数据类型,。,(,2,)表达式的书写规则,要,改变运算符的运算顺序,只能使用圆括号且必须成对出现;,乘,号不能省略;,表,达式从左至右书,写,字母无,大小写区分,。,注意:计算机表达式与数学不一样,(,3,)运算优先级,在一个运算表达式中,如果含有多种不同类型的运算符,则运算进行的先后顺序由,运算符的优先级决定,。,优先级,高 低,高,低,算术运算符,字符串运算符,关系运算符,逻辑运算符,指数运算,优先级相同,优先级相同,Not,取反,-,And,乘法和除法,*,/,Or,整数除法,模运算,Mod,加法和减法,+,-,圆括号的优先级别最高,因此可以用圆括号改变表达式的运算顺序。,P272,【,例,】,100/5 2,4,12/5*2,4.8,12 5*2,1,-12 Mod 5*2,-2,3+4*2 12+34,False,【,例,】,15 False And A&12 B,15 False And A&12 B,15 False And,A12,=9,0,优秀,_,IIf(cj.cj 60,不及格,及格,),P282,(,2,),Switch(),函数,语法格式:,Switch(,Expr1,Value1,Expr2,Value2,),功能:,依次判断各条件表达式的值,当某一表达式的值为,True,时,即输出其后的值。,说明:,Expr1,为条件表达式。,Value1,如果相关的条件表达式值为,True,时,即输出此部分的值。,【,例,】,根据输入的成绩判定等级。,Switch,(,cj.cj,60,不及格,_,cj.cj,90,及格,_,cj.cj,=100,优秀,),(,3,),Choose(),函数,语法格式:,Choose(,Index,Choice1,Choice2,),功能:,根据,Index,的值从其后的列表中选择并返回一个值。,说明:,Index,是数值表达式或字段,其值介于,1,和可选项目数之间。,Choice,为选项列表,函数即输出与,Index,的值相对应的选项值。,只有当,Index,的值介于,1,和可选的项目数之间,函数才会返回其后对应的选项的值,否则返回无效值(,Null,)。,【,例,】,将输入的,x,的值(仅限于,1 9,)转换为相应的英语单词。,Dim x As Integer,x=InputBox(,请输入一个,1,至,9,的数字,),Choose(x,One,Two,Three,Four,_,Five,Six,Seven,Eight,_,Nine),(,4,),InputBox(),函,数,(输入框),语法格式:,InputBox(,Prompt,Title,Default,Xpos,Ypos,Helpfile,Context,),功能:,在,输入,框,中显示提示信息,等待用户输入正,文或单,击按钮,并返回文本框中输入的,字符串,。,返回值数据类型:,字符型,P290,说明:,Prompt,提示字符串,最大长度约为,1024,个字符。如果包含多行,那么可以在各行之间用回车符,Chr(13),、换行符,Chr(10),或者它们的组合,Chr(13,)&,Chr(10),来分隔。,Title,显示,在,输入,框,标题栏中的字符串表达式。如果缺省,则标题,栏中显示的是应,用程序,名。,Default,显示在文本框中的字符串表达式,如果缺省,则文本框为空。,【,例,】,InputBox(What is your name?),调用,InputBox,函数时,如果中间若干个参数缺省,其对应的分隔符逗号“,”,不能缺省。,如果用户单击“确定”按钮或按下回车键,则函数返回文本框中的内容;如果用户单击“取消”按钮,函数则返回一个空字符串。,(,5,),MsgBox(),函,数,(消息框),语法格式:,MsgBox(,Prompt,Buttons,Title,Helpfile,Context,),功能:,在,消息,框,中显示信息,等待用户单击按钮,并返回一个整值型数据,告诉用户单击的是哪个按钮。,返回值数据类型:,整型,P292,说明:,Prompt,显示,在,消息,框,中的信息,最大长度大约为,1024,个字符。如果包含多个行,可以各行之间用回车符、换行符或是它们的组合分隔。,Buttons,是一个数值表达式的和,指定在消息框中显示的按钮数目及形式、使用的图标样式、默认按钮是什么以及消息框的强制回应等。如果缺省,则,Buttons,的默认值为,0,。,Buttons,选项取值说明(显示按钮及图标),常 量,数 值,说 明,vbOKOnly,0,仅有,确定,按钮,vbOKCancel,1,确定,和,取消,按钮,vbAboutRetryIgnoue,2,终止,、,重试,和,忽略,vbYesNoCancel,3,是,、,否,和,取消,按钮,vbYesNo,4,是,、,否,按钮,vbRetryCancel,5,重试,和,取消,按钮,vbCritical,16,显示,Critical Message,图标,vbQuestion,32,显示,Warning Query,图标,vbExclamation,48,显示,Warning Message,图标,vbInformation,64,显示,Information Message,图标,P292,Buttons,选项取值说明(默认按钮),常 量,数 值,默 认 按 钮,vbDefaultButton1,0,第一个按钮是默认按钮,vbDefaultButton2,256,第二个按钮是默认按钮,vbDefaultButton3,512,第三个按钮是默认按钮,vbDefaultButton4,768,第四个按钮是默认按钮,【,例,】,MsgBox(Your name is Obama,68,Your Name),【,例,】,MsgBox(,程序运行完毕,!,2+48+256,提示,),如何实现下图所示的对话框?,MsgBox(,程序已修改,&Chr(13,),_,&,是,否保存,?,3+32,提示,),返回值,单击的按钮,返回值,单击的按钮,1,确认,5,忽略,2,取消,6,是,3,终止,7,否,4,重试,MsgBox(),函数的返回值说明,第 四 节,VBA,流,程,控,制,语句,VBA,中的语句是能够完成某项操作的一条完整命令,它可以包含关键字、函数、运算符、变量、常量以及表达式等。,VBA,的语句分为,3,种类型:,声明语句,为变量、符号常量或程序命名,并且指定一个数据类型。,赋值语句,把一个值或表达式赋给一个变量。,执行语句,完成某个动作。,P277,一、声明语句,在,VBA,中,使用声明语句去命名和定义过程、变量、数组以及符号常量。,当声明一个过程、变量或常量时,也同时定义了它的作用范围,而此范围取决于声,明的位,置以及所用的关键字。,过程中声明的变量只在过程中可以使用,而且在调用时会丢失其变量的值,除非将它声明为,Static,。,二、赋值语句,赋值语句是将一个表达式的值赋给变量或数组元素。,语法格式:,Let,变量名,|,数组元素,=,值或表达式,功能:,将指定的值或表达式的值赋给变量。,说明:,通常情况,下,,Let,都可以,省略。,赋值语句中的“,=,”,并不是数学中的等号,它表示:,将等号右,边表达式的运算结果赋,予等号右边的变,量。,【,例,】,Sub Question(),Dim YourName As String,Dim a As Integer,YourName=,InputBox,(What is your name?),MsgBox,Your name is&,YourName,End Sub,注意:,若要保存所单击消息框中按钮的值,则代码应设置为:,a,=,MsgBox,(Your name is,&YourName),P278,三、标号和,Goto,语句,Goto,语句用于在程序执行过程中实现无条件转移。,语法格式:,Goto,标号,功能:,无条件地将程序转移至标号的位置,并从该位置继续执行程序。,说明:,标号定义时,标号名必须从代码行的第一,列开始书写,,且标,号名后,加冒号“,:,”,。,【,例,】,Goto,Label1,Label1,:,在,VBA,中,程序的执行流程可以用结构化语句控制,除了在错误处理的,On Error Goto,结构中使用外,应避免使用,Goto,语句。,四,、,执行,语,句,执行语句是程序的主,体,程,序功能靠执行语句来实现。语句的执行方式按流程可以分为:,顺序结构,按照语句的逻辑顺序依次执行,分支结构,(,选择结,构 条件判断结构,),根据条件是否成立选择语句执行路径,循环结构,根据循环条件可以重复执行某一段程序语句,1,、分支结构,VBA,支持以下,4,种分支结构:,If,Then,(单分支),If Then,Else,(双分支),If Then,ElseIf,(多分支),Select,Case,(多分支),(,1,),If Then,单分支,结构语句,语法格式一:,If Then ,语法格式二:,If Then,End,If,功能:,当条件表达式为真时,执行,Then,后面的语句,否则不做任何操作。,对条件表达式求值,语,句(块),If,True,False,End If,后语句,说明:,格式,一:,Then,后的语句只能是一,条;或,者是用冒号分隔的多条语句,,并且必,须与,If,语句在同一行上。,格式,二:,语,句块中的语句可以是多条,,并且,可以多行书写。,【,例,】,比较两个数值变量,x,和,y,的值,用,x,保存大的值,,y,保存小的值。,If x y Then,t=x,x=y,y=t,End If,或者:,If x y Then t=x:x=y:y=t,【,例,】,随机出一道两位数加法题让小学生回答,如答对了,显示“正确!”;答错显示“错误!”。,Sub test(),Dim a As Integer,b As Integer,Dim nSum As Integer,a=10+Int(Rnd*90),b=10+Int(Rnd*90),nSum=InputBox(a&+&b&=?,_,加法,),If nSum=a+b Then MsgBox(,正确,!),If nSum a+b Then MsgBox(,错误,!),End Sub,(,2,),If Then Else,双分支,结构语句,语法格式一:,If Then Else ,语,法格式二:,If Then,Else,End If,功,能:,当条件表达式为真时,执行,Then,后面的语句,1,(语,句块,1);,否,则执行,Else,后面的语句,2,(语,句块,2),。,对条件表达式求值,语句块,1,语句块,2,If,True,False,End If,后语句,【,例,】,输出两个数中的最大值。,Dim a As Single,b As Single,a=InputBox(,请输入第一个数值:,),b=InputBox(,请输入第二个数值:,),If a =b Then,max=a,Else,max=b,End If,Debug.Print ,最大值是,&max,或者:,If x =y Then max=x Else max=y,Debug.Print ,最大值是,&max,【,例,】,输入购书数量及单价,如果购买,10,本以上,就打八折,否则不打折。计算并输出购书金额。,Sub buy(),Dim qty As Integer,price As Single,Dim money As Single,qty=InputBox(,请输入购书数量,购书数量,),price=InputBox(,请输入单价,单价,),If,qty 10,Then,money=price*qty,Else,money=price*qty*0.8,End If,Debug.Print ,购书金额,=+Str(money)+,元,End Sub,(,3,),If Then ElseIf,多分支,结构语句,语法格式:,If Then,ElseIf Then,Else,End If,功能:,依次测试条件表达式,1,、表达式,2,、,,当遇到条件表达式为真时,执行该条件下的语句块。如均不为真,,且有,Else,选项,则执行,Else,后的语句,块,n,,,否则执行,End If,后面的语句。,Else,If,T,F,End If,后语句,语句块,1,条件表达式,2,F,T,语句块,2,T,F,条件表达式,1,语句块,n,【,例,】,求一元二次方程的实数根。,delta=b*b-4*a*c,If delta 0 Then,Debug.Print ,方程有两个不等的实数根,Debug.Print (-b+Sqr(delta)/(2*a),Debug.Print (-b Sqr(delta)/(2*a),ElseIf delta=0 Then,Debug.Print ,方程有两个相等的实根,Debug.Print -b/(2*a),ElseIf delta =65 And nChar =97 And nChar =48 And nChar =57,Then,Debug.Print ,输入的字符是数字,ElseIf,nChar=32,Then,Debug.Print ,输入的是空格,Else,Debug.Print ,输入的字符是其它字符,End If,(,4,),Select Case,多分支,语句,当条件选项比较多时,使用,If,语句嵌套来实现,程序会变得很复杂,不利于程序的阅读与调试。此时用,Select Case,语句会使程序更清晰。,语法格式:,Select Case ,Case ,Case ,Case Else,End Select,功能:,Select,语句首先计算,Select Case,后,的值,然后将该值依次与,Case,子句中表达式的值作,比较,:,如果,满足某个,Case,的值,则执行相应的语句块;当所有,Case,语句都不满足时,执行,Case Else,后的语句块。若无,Case Else,选项,则无任何操作。,Case Else,计算,Select Case,后变量或表达式值,T,F,End Select,后语句,语句块,1,与表达式,2,比较,F,T,语句块,2,T,F,与表达式,1,比较,语句块,n,Case,表达式与,的数据类型必须相同。,如果,满足多个,Case,表达式,则只有第一个符合条件的,Case,语句被执行。,每个,Case,的值可以是一个或多个值的列表,多个值之间用逗号分隔。,Case,表达式可以是下列情况之一:,单一数值或一行并列的数值(用逗号隔开),由关键字,To,分隔的两个数值或表达式之间的范围,关键字,Is,连接,关系运算符,,关系运算符后是变,量或精确值,【,例,】,按要求输出,y,的值,y=,1x 0,0 x=0,-1x 0,y=1,Case Is=0,y=0,Case Is =1000,je=je*0.8,Case Is =600,je=je*0.85,Case Is =300,je=je*0.9,End Select,Debug.Print ,实际付款金额为:,&je,je=InputBox(,请输入所购商品金额,),Select Case je,Case Is =300,je=je*0.9,Case Is =600,je=je*0.85,Case Is =1000,je=je*0.8,End Select,Debug.Print ,实际付款金额为:,&je,2,、循环结构,循环结构允许重复执行一组程序代码,。,在,VBA,中提供了,3,种循环结构:,For Next,Do Loop,While Wend,(,1,),For Next,循环结构,语法格式:,For,循环变量,=,初值,To,终值,step,步长,Exit For,Next,循环变量,P284,程序执行流程:,(,1,)循环变量先被,赋于初值,;,(,2,),判断循环变量是否,超出终值,,如果循环变量没有超出终值,执行循环体内的语句;否则终止循环,执行,Next,后的语句;,(,3,)每次循环结束后(即遇到,Next,语句),循环变量自行,增加一个步长值,,即:,循环变量,=,循环变量,+,步长,(,4,)返回到,For,语句,重复执行(,2,)步骤;,(,5,)程序一旦执行到,Exit For,语句时,无论循环变量是否超出终值,立即退出循环,执行,Next,后的语句。,循环变量,=,初值,判断循环变量是否超出终值,语句块,循环变量,=,循环变量,+,步长,For,False,Next,后语句,True,Next,说明:,步长缺省时,默认值为,1,。,步长可以是任意的正数或负值。当步长为正数时,初值应小于等于终值;步长为负数时,初值应大于等于终值。,步长不能为,0,,否则将造,成,“,死,循,环,”,或,循环一次都不执行。,每执行一次循环,循环变量的值,自动,增加一个步长值。,For,和,Next,必须成对出现。,For,语句适用于循环次数事先是可以预见的循环。,【,例,】,计算,10,的阶乘,即:,p=1*2*3*10,。,Dim p As Long,p=1,For i=1 To 10,p=p*i,Next i,Debug.Print 10,的阶乘,p=&p,【,例,】,说出以下程序的运行结果。,s=0,For i=1 To 10 Step 2,s=s+i,i=i+1,Next i,Debug.Print s,22,【,例,】,计算,100,以内非,5,且非,7,倍数之和。,Dim s As Long,s=0,For i=1 To 100,If Int(i/5)i/5 _,And Int(i/7)i/7 Then,s=s+i,End If,Next i,Debug.Print s,【,例,】,说出以下程序的运行后,s,的值。,s=0,For i=1 To 10,If i Mod 6=0 Then,Exit For,ElseIf i Mod 3=0 Then,Else,s=s+i,End If,Next i,Debug.Print s,12,【,例,】,说出以下程序运行后的结果。,s=0,total=0,For m=1 To,3 Debug.Print,part,Select Case m,total,=total+part,Case Is =1 Next m,part=1 Debug.Print total,Case Is =2,part=2,Case Is =3,part=3,Else Case,part=4,End Select,1,1,1,3,【,例,】,求解斐波那契数列的前,20,项的值,将结果存储在一维数组,f,中,并要求将结果在立即窗口中输出。,Dim f(1 To 20)As Integer,f(1)=1:f(2)=1,For i=3 To 20,f(i)=f(i 1)+f(i 2),Next i,For i=1 To 20,Debug.Print f(i),Next i,【,例,】,下列程序的运行结果是什么,?,Dim c As String,cc As String,n As String,c=abc def gh i jk,cc=Space(0),For i=1 To Len(c),n=Mid(c,i,1),IF n Space(1)Then,cc=cc+Mid(c,i,1),End If,Next i,Debug.Print cc,abcdefghijk,【,例,】,下列程序的运行结果是什么,?,Dim c As String,cc As String,c=abcdefghijk,cc=Space(0),For i=1 To Len(c),cc=Mid(c,i,1)+cc,Next i,Debug.Print cc,kjihgfedcba,(,2,),Do Loop,循环结构语句,Do Loop,循环结构语句有,5,种形式。,Do,While Loop,语法格式:,Do While,Exit Do,Loop,程序执行流程:,(,1,)判断条件表达式的值,(,2,)当条件表达式的值为,True,时,执行循环体内语句;条件表达式的值为,False,时退出循环,并执行,Loop,后面的语句,(,3,)当程序执行到,Loop,语句时,重新返回到循环的开始语句,再次判断条件表达式的值,即步骤(,1,),(,4,)在循环语句执行过程中,若遇到,Exit Do,语句,无论循环条件是否成立,立即退出循环,执行,Loop,后面的语句。,对条件表达式求值,循环体内语句,Do While,True,False,Loop,Loop,后语句,说明:,首次执行,Do While,语句时,,如果条,件不成立,则循环体内的语句一次也不执行。,循环体内应该有改变循环条件的语句,否则将进,入,“,死,循,环,”,。,Do While,和,Loop,必须成对出现。,【,例,】,求,100,以内的自然数之和与积。,s=0:p=1:i=1,Do While i =100,s=s+i,p=p*i,i=i+1,Loop,Debug.Print 100,之内所有自然数之和为,:&s,Debug.Print 100,之内所有自然数之积为,:&p,【,例,】,计算,100,以内,3,的倍数之和。,s=0:i=1,Do While i =100,If i,Mod 3,=0 Then s=s+i,i=i+1,Loop,Debug.Print 100,之内,3,的倍数之和为,:&s,【,例,】,说出下列程序运行后,x,和,i,的值。,x=0:i=1,Do While i =1000,x=x+i,i=i+2,Loop,Debug.Print x,Debug.Print i,x,为,1000,之内的奇数之和,,i,为,1001,【,例,】,说出下列程序运行后,j,和,n,的值。,Dim j As Integer,n As Integer,j=0:n=0,Do While n 820000 Then,Exit,Do,n=n+,2,Loop,Debug.Print s,的值,=&s,Debug.Print ,累加的奇数个数,=&k,循环条件为,True,时,循环体内必定有,Exit Do,语句且条件满足时将执行该语句,否则将进,入,“,死,循,环,”,。,Do,Until Loop,语法格式:,Do Until,Exit Do,Loop,程序执行流程:,(,1,)判断条件表达式的值,(,2,)当条件表达式的值为,False,时,执行循环体内语句;条件表达式的值为,True,退出循环,执行,Loop,后面的语句,(,3,)当程序执行到,Loop,语句,则重新返回到循环的开始语句,再次判断条件表达式的值,即步骤(,1,),(,4,)在循环语句执行过程中若遇到,Exit Do,语句,则退出循环。,对条件表达式求值,循环体内语句,Do Until,False,True,Loop,Loop,后语句,【,例,】,计算,100,的阶乘。,Sub Factorial(),Dim i As Integer,p As Double,i=1:p=1,Do Until i 100,p=p*i,i=i+1,Loop,MsgBox(100,的阶乘为,:&p),End Sub,【,例,】,编程计算,S=1,1,+3,3,+5,5,+7,7,+n,n,(,n,为奇数)的值,当,S,的值大于,820000,时,停止计算并显示,S,的值及已累加的奇数个数。,s,&,=0:k,%,=0:n,%,=1,Do Until s 820000,s,=s+n n,k,=k+1,n,=n+,2,Loop,Debug.Print s,的值,=&s,Debug.Print ,累加的奇数个数,=&k,【,例,】,编写一个能将一个字符串反序显示的程序。,c$=abcdefg :cc$=abcdefg,cResult$=Space(0),Do Until Len(cc)=0,cResult=Left(cc,1)+cResult,cc=Mid(cc,2),Loop,Debug.Print c,&,的反序为,:,&cResult,【,例,】,对表达式,1/(123)+1/(234)+,进行求和运算,并且要求某一项的精度小于,0.0001,时停止计算。,i%=1:s#=0,Do Until 1/(i*(i+1)*(i+2)0.0001,s=s+1/(i*(i+1)*(i+2),i=i+1,Loop,Debug.Print ,表达式的值,=&s,Do,Loop While,语法格式:,Do,Exit Do,Loop While ,程序执行流程:,(,1,),先执行循环体内语句,(,2,)当程序执行到,Loop While,语句时测试表达式的值,(,3,)如果条件表达式的值为,Ture,,就返回到,Do,语句,再次执行循环体内的语句;若条件表达式的值为,False,,则退出循环,(,4,)程序执行过程中,一旦遇到,Exit Do,语句就退出循环。,对条件表达式求值,循环体内语句,Do,False,True,Loop While,Loop While,后语句,【,例,】,计算,100,以内,3,的倍数之和。,i=1:s=0,Do,If i/3=i 3 Then s=s+i,i=i+1,Loop While i =100,Debug.Print 100,以内,3,的倍数之和为,:&s,【,例,】,计算数列,1/2+2/3+,前,20,项之和。,Dim s As Double,i As Integer,s=0:i=1,Do While i =20,s=s+i/(i+1),i=i+1,Loop,Debug.Print s,Dim s As Double,i As Integer,i=1 :s=0,Do,s=s+i/(i+1),i=i+1,Loop While i 20,s=s+i/(i+1),i=i+1,Loop,Debug.Print s,Dim s As Double,s=0,For i=1 To 20,s=s+i/(i+1),Next i,Debug.Print s,Do,Loop Until,语法格式:,Do,Exit Do,Loop Until ,程序执行流程:,(,1,)先执行循环体内语句,(,2,)当程序执行到,Loop Until,语句时测试表达式的值,(,3,)如果条件表达式的值为,False,,就返回到,Do,语句,再次执行循环体内的语句;如果条件表达式的值为,Ture,,则退出循环,(,4,)程序执行过程中,一旦遇到,Exit Do,语句就退出循环。,对条件表达式求值,循环体内语句,Do,True,False,Loop Until,Loop Until,后语句,【,例,】,对表达式,1/(123)+1/(234)+,进行求和运算,并且要求某一项的精度小于,0.0001,时停止计算。,i%=1:s#=0,Do,s=s+1/(i*(i+1)*(i+2),i=i+1,Loop Until 1/(i*(i+1)*(i+2)0.0001,Debug.Print ,表达式的值,=,&,s,Do Loop,循环小结:,Do Loop,循环有,4,种形式:,Do While Loop,Do Until Loop,Do Loop While,Do Loop Until,While,是条件满足时,继续,循环;,Until,是条件满足时,停止,循环。,前两个循环语句是先判断条件是否成立,后执行循环体内的语句,因此循环有可能一次也不执行。,后两个循环语句是先执行循环体内的语句,后对条件进行判断,因此循环至少执行一次。,Do,Loop,语法格式:,Do,Exit Do,Loop,说明:,此种循环没有循环条件,会一直运行而成,为,“,死,循,环,”,。,为避,免,“,死,循,环,”,,,在循环体内必定设置并在适当的时候执行,Exit Do,语句。,Exit Do,语句可以在循环体内的任何位置上放置,且无数量限制。,【,例,】,对表达式,1/(123)+1/(234)+,进行求和运算,并且要求某一项的精度小于,0.0001,时停止计算。,i%=1:s#=0,Do,s=s+1/(i*(i+1)*(i+2),i=i+1,If,1/(i*(i+1)*(i+2)0.0001,Then Exit Do,Loop,Debug.Print ,表达式的值,=,&s,(,3,),Wh
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服