您好,欢迎访问三七文档
教师:杨岚学生:06自动化课程:多媒体软件设计技术选择结构程序设计有些问题,如:分段函数求值;一元二次方程求根,根据△的情况,采用不同的数学表达式;将学生成绩进行分类等。VB提供了三种选择语句结构,统称为条件语句:根据条件有选择的执行代码段。单行结构条件语句:if…then…else块结构条件语句:if…then…endif多分支选择语句:selectcase…endselect教师:杨岚学生:06自动化课程:多媒体软件设计技术1.单行结构条件语句if…then…else格式:单分支条件语句:if条件then语句组功能:如果“条件”成立,那么执行语句组多分支条件语句:if条件then语句组1else语句组2功能:如果“条件”成立,那么执行语句组1,否则就执行语句组2说明:单行结构条件语句应作为一条语句书写,若要分行,必须用续行符。语句组中的语句可以有多条,中间用“:”隔开,不能分行写。教师:杨岚学生:06自动化课程:多媒体软件设计技术例5-1根据公式计算函数y的值,要求:用inputbox函数输入变量x,用文本框输出y。例:实习5-5设计口令检测界面,假设口令为“123456”要求输入口令长度不超过8个字符,运行时,输完口令按回车或“确定”,都可以对口令进行判断。口令正确时,显示form2,否则,在原口令检测窗体标题上显示出错信息,在连续三次输入错误口令后,给出警告信息,并自动退出应用程序。单行结构条件语句口令检测教师:杨岚学生:06自动化课程:多媒体软件设计技术2.块结构条件语句if…then…endif通用格式:If条件1then语句组1[elseif条件2then语句组2]…………[elseif条件nthen语句组n][Else语句组n+1]Endif两种常用格式If条件1then语句组1else语句组2endif功能:类似与单行结构多分支条件语句If条件then语句组endif功能:条件成立时执行语句组,不成立时,不作任何处理。教师:杨岚学生:06自动化课程:多媒体软件设计技术例5-4Ifc40thenprint”热”Elseifc30andc=40thenprint“暖和”Elseifc20andc=30thenprint“室温”Elseifc10andc=20thenprint”冷”Elseifc=0andc10thenPrint“寒冷”Elseprint“结冰”Endif温度转换对此程序稍作修改1.只允许输入-100~200范围内的数值2.转换结束后,焦点自动回到text1,且选中text1中的文本,以便于下次输入。修改温度转换说明:Elseif不能写成elseif;严格按照条件语句的格式进行书写,不要随意将两行合成一行书写。块结构条件语句可以嵌套使用,但要注意不能交叉嵌套。教师:杨岚学生:06自动化课程:多媒体软件设计技术3.多分支选择语句selectcase…endselect格式:selectcase测试表达式case表达式表1[语句组1]case表达式表2[语句组2]…………caseelse[语句组n]endselect功能:根据“测试表达式”的值,选择一个符合条件的语句组执行。修改温度转换程序段:Selectcaseccaseis40print“热”caseis30print“暖和”caseis20print“室温”caseis10print“冷”caseis0print“寒冷”caseelseprint“结冰”Endselect执行过程:先求“测试表达式”的值,然后再顺序测试该值符合哪一个Case子句中的情况,如果找到合条件的,就执行该case子句下面的语句组,然后执行endselect下面的语句,如果没找到,则执行caseelse下面的语句组,然后执行Endselect下面的语句教师:杨岚学生:06自动化课程:多媒体软件设计技术说明:“测试表达式”可以是数值型,也可以是字符串型Case后的“表达式表”的形式可以是以下三种形式:1.一个表达式,或者是用“,”隔开的多个表达式如:case1或case1,3,52.表达式:n1ton2Case1to5等价于case1,2,3,4,5Case“a”to“z”3.Is关系运算符表达式caseis=10以上三种形式可以混和使用,用“,”隔开如:case1,3,”a”to“z”,is=10“测试表达式”的类型应于case后的表达式类型一致“测试表达式”的最终结果只能有一个Csae后的“表达式表”不能是变量和布尔运算符如:casex0andx100caseis0,is100case0to100教师:杨岚学生:06自动化课程:多媒体软件设计技术将例5-4改称用selectcase语句例5-6select温度转换分段运费问题例5-5求分段函数教师:杨岚学生:06自动化课程:多媒体软件设计技术例5-7键盘事件:Keypress事件:用户按下并释放键时触发该事件。Keydown事件:用户按下一个键时触发该事件Keyup事件:用户释放一个键时触发该事件在引发键盘事件的同时,用户所按的键盘码将作为参数传递给相应的事件过程,供程序执行用。5-7口令检测教师:杨岚学生:06自动化课程:多媒体软件设计技术Dim和static的区别:Dim:在窗体模块中、事件过程中声明变量。如果dim语句出现在窗体代码的声明部分,则窗体以及窗体中各个控件的事件过程都可以使用这些变量,这种变量称为窗体级变量;如果dim语句出现在过程中,则只在过程中有效,称为局部变量。在过程内用dim说明的变量,每次调用过程结束后,变量值将会是初始值。Static:在过程中声明静态变量,在每次调用过程时,静态变量会保存运行后的结果值。Dim&static的用法教师:杨岚学生:06自动化课程:多媒体软件设计技术例5-8求一元二次方程的解要求分析:1.输入a、b、c的值,用什么方法?2.系数不同,求解的公式不一样,解决的方法也不一样;3.用什么语句最容易解决问题?例5-9四则运算要求分析:1.在text1中输入符号,label2中立即出现该运算符,实现?2.“出题”,产生两个随机数;3.“计算”功能如何实现?判断表达式中的运算符,根据运算符采用不同的计算方法。4.“判断”功能如何实现?根据运算符,判断text4中的结果是否和用表达式计算的结果一致。一元二次方程四则运算循环结构程序设计顺序结构:按程序代码顺序执行选择结构:根据条件选择执行循环结构:反复处理相同或相似程序段的操作如:求1~100所以奇数的和VB提供了以下循环语句结构:For…Next语句:常用于循环次数已知的循环设计Do…loop语句:常用于循环次数未知,但有循环结束条件的设计ForEach…Next语句:常用于对数组中的每个元素执行循环教师:杨岚学生:06自动化课程:多媒体软件设计技术1.For…Next循环结构作用:若知道循环次数,则用for…next结构格式1)For循环变量=初值To终值[step步长]循环体语句组Next[循环变量](循环执行结束后,正常退出循环)2)For循环变量=初值To终值[step步长]循环体语句组1ExitFor语句组2Next[循环变量](满足某个条件时,提前强制退出循环)Sum%=0:I%=0ForI=1to10step2sum=sum+INextIPrintsum,iSum%=0:I%=0ForI=1to10step2sum=sum+IIfsum=20thenexitforNextIPrintsum,iExitfor的用法教师:杨岚学生:06自动化课程:多媒体软件设计技术格式中各项的说明1)循环变量:也称为循环控制变量,必须为数值型,在程序中起循环计数的作用2)初值:3)终值:4)步长:指循环变量的增量值,可以是正,也可以是负,但不能为0若初值终值,则步长为负若初值终值,则步长为正,若为1,则step1可以省略5)Next后的循环变量应与For语句中的循环变量相同,也可以省略6)For…Next循环语句的执行过程Step1:系统将初值赋给循环变量Step2:测试循环变量的值和终值的关系Step3:执行循环语句Step4:循环变量的值增加步长单位值Step5:返回step2继续执行7)格式2中的ExitFor语句用于退出循环体,执行Next语句后的语句。常用格式为:if条件thenexitfor都是数值型,可以是数值表达式步长为正,若大于,则退出步长为负,若小于,则退出ForI=10to1step-2sum=sum+INextI循环变量初值终值步长教师:杨岚学生:06自动化课程:多媒体软件设计技术累加例6-1:求1+2+3+…+n的和此类问题的分析方法:1.属于“累加”类的问题,可以采用通用方法来处理2.定义“和”变量(如sum)及初值(如sum=0);定义“累加”变量(如I)3.分析循环执行语句:sum=sum+I4.分析循环变量的初值和终值,“累加”变量作为循环变量,1ton写出循环语句:Dimsumasinteger,IasintegerSum=0:n=val(text1.text)ForI=1ton[step1]Sum=sum+INextIForm1.Printsum思考:求N!请写出相应的代码分析:N!=1×2×3×…×N和上面“累加”问题类似,只是循环语句换成mul=mul*IMul的初始值不能为0,可赋为1教师:杨岚学生:06自动化课程:多媒体软件设计技术统计字符例6-3从键盘上任意输入10个字符,每次输入一个,分别统计字符“A”,”B”,”C”的个数,(不区分大小写),若连续输入三个字符Q,则退出输入。分析:每次输入一个,如何解决?不区分大小写,如何解决?如何让程序输入了10个字符后,退出统计?满足某种条件时强制退出,如何解决?如何判断连续输入了三个字符“Q”?如何统计“A”,”B”,”C”的个数?Inputbox函数或textbox控件Ucase函数ForI=1to10If条件thenexitfor计数变量qcount,赋初值0If“Q”计数变量qcount加1Ifqcount=3then退出输入设三个计数变量,分别赋初值0If满足条件相应计数变量加1最后,分别输出计数变量,即为相应字符的个数CH=InputBox(“请输入一个字符”&Chr(13)&vbCrLf&这是第&i&个字符,字符统计)教师:杨岚学生:06自动化课程:多媒体软件设计技术2.Do…Loop循环结构作用:通过判断条件是否满足以决定循环是否继续执行格式1)Do…While|Until条件循环体语句Loop条件真?循环体truefalseDowhile…loop当型循环Dountil…loop当型循环条件真?循环体falsetrue教师:杨岚学生:06自动化课程:多媒体软件设计技术2)Do循环体语句LoopWhile|Until条件真?循环体falsetrue条件真?循环体falsetrueDo…loopwhile直到型循环Do…loopuntil直到型循环在do…loop结构中,可以用exitdo提前退出循环,用法同exitfor常用格式为:if条件thenexitdo教师:杨岚学生:06自动化课程:多媒体软件设计技术由以上执行流程可知:while与until的区别是:while条件,表示当条件成立时执行循环体;until条件,则表示当条件不成立时执行循环体。当型循环和直到型循环的区别:当型循环先判断条件,根据条件决定是否执行循环;直到型循环不管条件如何,总要执行一次循环,然后再判断循环条件因此:对于在循环开始,条件就有可能不满足的问题,应该用当型循环例6-4求S=12+22+32+…,S小于某个指定整数N的最大值如:若N=10,则S的最大值为12+22=5分析:求S是“累加”问题,通项i^2,但是累加的次数未知,即循环次数未知,但循环的结束条件可以由“SmaxN”判断S=0:I=1DowhileSN
本文标题:选择结构和循环结构
链接地址:https://www.777doc.com/doc-3351612 .html