vb第四章-基本控制结构PPT课件_第1页
vb第四章-基本控制结构PPT课件_第2页
vb第四章-基本控制结构PPT课件_第3页
vb第四章-基本控制结构PPT课件_第4页
vb第四章-基本控制结构PPT课件_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

.,1,第四章基本的控制结构,.,VB虽然采用事件驱动调用相对划分得比较小的子过程,但是对于具体的过程本身,仍然要用到结构化程序的方法,用控制结构控制程序执行的流程。结构化程序设计有3种基本结构:顺序结构、选择结构、循环结构。,.,第一节语句,一、程序语句:VB程序中的一行代码称为一条程序语句,是执行具体操作的指令。一个语句行的长度不能超过255个字符。二、程序的书写规则:1、将单行语句分成多行:用续行符(一个空格后面跟一个下划线)将长语句分成多行。,.,2、将多个语句合并到同一行上通常,一行之中有一个VisualBasic语句,而且不用语句终结符。但是也可以将两个或多个语句放在同一行,只是要用冒号(:)将它们分开。Text1.Text=Hello:Text1.BackColor=255但是,为了便于阅读代码,最好还是一行放一个语句。,.,3、在代码中添加注释(Rem和)阅读例子时常会遇到注释符()。这个符号告诉VisualBasic,忽略该符号后面的内容。这些内容是代码段中的注释,既是为了方便开发者,也是为了方便以后可能检查源代码的其他程序员。例如:Text1.Text=“Hi!”在文本框中放欢迎词。注释可以和语句在同一行并写在语句的后面,也可占据一整行。,.,注意可以通过选中两行或多行代码并在“编辑”工具栏上通过选择“注释块”或“删除注释块”按钮来对该代码块添加或删除注释符号。,.,第二节赋值语句,Let=将表达式的值赋给变量或属性。Let可选的。变量名必需的。表达式必需的。赋给变量或属性的值。说明:赋值语句左右两端类型相同。赋值号和等号。如果变量未被赋值而直接引用,则数值型变量的值为0,字符型变量的值为“空串”。布尔型为False。,.,第三节输出数据,一、用Label控件输出文本二、用Print方法输出文本对象.Print表达式,|;,.,对象可以是窗体(Form)、立即窗口(Debug)、图片框(PictureBox)、打印机(Printer)等对象表达式是写在同一行上的若干个表达式,表达式之间用逗号或分号间隔。每执行一次Print方法要自动换行。但是可以在Print方法末尾加上分号或逗号。,.,缩写为?与Print方法有关的函数:(P36)Print#语句:将格式化显示的数据写入顺序文件中。,.,第四节输入数据,用InputBox函数显示一个能接受用户输入的对话框,等待用户输入数据,并返回用户在对话框中输入的信息。变量名=inputbox(提示内容,对话框标题,默认内容,X坐标位置,Y坐标位置)用文本框,.,第五节选择结构,简单程序可以只用顺序结构来编写,即程序从左至右、自顶向下执行语句。,.,在程序设计中经常遇到这类问题,它需要根据不同的情况采用不同的处理方法。例如,一元二次方程的求根问题,要根据判别式小于零或大于等于零的情况,采用不同的数学表达式进行计算。对于这类问题,如果用顺序结构编程,显然力不从心,必须借助选择结构。,.,VisualBasic支持的选择结构有:IfThenIfThenElseIf.Then.ElseIfSelectCaseEndSelectIf条件then语句1Else语句2,.,一、块If,格式:If条件then语句块1Else语句块2EndIf,.,说明:(1)“条件”一般为关系表达式或逻辑表式。通常把关系表达式或逻辑表达式的值为真时,称为条件满足;值为假时,称为条件不满足。反之亦然。(2)语句块1、语句块2分别是“条件”满足或不满足时,处理方法的描述,可以是若干个语句。(3)IfThen、Else、EndIf是VB的保留字。,.,功能:块If首先判断“条件”,其值为真时,执行语句块1;为假时执行语句块2。当缺省Else中的内容时,该选择结构只对条件满足的情况进行处理。执行过程如图所示。,.,.,【例4.1】火车站行李费的收费标准是50kg以内(包括50kg)0.20/kg,超过部分0.50/kg。编写程序,要求根据输入的任意重量,计算出应付的行李费。根据题意计算公式如下:,.,.,程序代码如下:计算按钮代码PrivateSubCommand1_Click()DimsinWeightassingleDimsinPayassinglesinWeight=Text1.TextIfsinWeight50ThensinPay=(sinWeight-50)*0.5+50*0.2ElsesinPay=sinWeight*0.2EndIfText2.Text=payEndSub,.,PrivateSubCommand2_Click()Text1.Text=Text2.Text=EndSubPrivateSubCommand3_Click()EndEndSub,.,【例4.2】任意输入3个数,按照从大到小的顺序输出。,.,算法分析:排序的基本方法,就是比较大小,然后根据比较的结果分别加以处理。本例把3个数分别放在A,B,C中,处理过程为:若AB为真,交换A,B的值;否则不做处理。这样就保证了AB;然后再用C去比较。,.,ifabthent=aa=bb=tendififa=80ThenText2.Text=良好ElseIfscore=70ThenText2.Text=中,.,ElseIfscore=60ThenText2.Text=及格ElseText2.Text=不及格EndIfEndSub,.,ElseIf语句,实际完成的是块If的嵌套,它和块If嵌套的格式上有很大区别,ElseIf结构只有一对If和EndIf语句。另外应注意:【ElseIf】和【ElseIf】的区别。,.,四、行If语句,格式:If条件then语句1Else语句2功能:当条件满足时,执行语句1;条件不满足时,执行语句2。从行If的格式和功能不难看出,行If语句是一种简单的分支结构,只是把一个简单的块If结构写在一行中,减少了语句行,省略了“EndIf”的书写。行If完全可以用块If代替。【例4.4】任意输入3个数,找出其中的最大值。,.,.,程序代码如下:PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSingle,maxAsSinglea=val(Text1.Text)b=val(Text2.Text)c=val(Text3.Text)max=aIfbmaxThenmax=bIfcmaxThenmax=cText4.Text=maxEndSub,.,五、SelectCase语句,当对一个表达式的不同取值情况作不同处理时,用ElseIf语句程序结构显得较为杂乱,而用SelectCase语句将使程序的结构更清晰,SelectCase语句又称为情况语句。,.,格式:SelectCase测试表达式Case表达式列表1语句块1Case表达式列表2语句块2Case表达式列表n语句块nCaseElse语句块n+1EndSelect,.,功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。执行过程是:先求“测试表达式”的值,然后顺序测试该值符合哪一个Case子句中情况,如果找到了,则执行该Case子句下面的语句块,然后执行EndSelect下面的语句;如果没找到,则执行CaseElse下面的语句块,然后执行EndSelect下面的语句。,.,说明:“测试表达式”可以是数值型或字符串型表达式;“表达式列表”形式有以下3种:(1)一个表达式或用逗号隔开的若干表达式(2)表达式1To表达式2(3)Is关系运算符表达式p84,.,【例4.5】把例4.3中“鉴定”按钮的代码用SelectCase语句改写。PrivateSubCommand1_Click()Dimscore!score=Text1.TextSelectCasescoreCaseIs=90Text2.Text=优秀,.,CaseIs=80Text2.Text=良好CaseIs=70Text2.Text=中CaseIs=60Text2.Text=及格CaseElseText2.Text=不及格EndSelectEndSub,.,43,第六节循环结构,在前面,我们学习了顺序结构和分支结构,本章我们将要介绍结构化程序3种基本结构的最后一种循环结构。,.,一、循环概述,在实际工作中,常遇到一些操作过程不太复杂,但又需要反复进行相同处理的问题,比如,统计本单位所有人员的工资,求全班同学各科的平均成绩等等。这些问题的解决逻辑上并不复杂,但如果单纯用顺序结构来处理,那将得到一个非常乏味且冗长的程序。例如,计算1100所有奇数的平方和,如果用顺序结构来解决这个问题,我们就会给出下面的程序:,.,PrivateSubForm_Click()Dims&,x%s=0 x=1s=s+x2x=x+2s=s+x2x=x+2s=s+x2x=x+2x的值累加到99s=s+x2Print“1100之间所有奇数的平方和=;sEndSub,.,由上面的例子不难看出,程序的绝大部分是在反复执行两条语句x=x+2和s=s+x2,不同的是x的值在变化。程序当然非常简单易懂,但缺乏最基本的编程技巧。要想方便地解决这类问题,最好的办法就是用循环语句。所谓循环就是重复地执行一组语句。我们用循环语句解决上面的问题,程序非常简短:,.,PrivateSubForm_Click()Dims&,x%s=0Forx=1To99Step2s=s+x2NextxPrint1100所有奇数的平方和=;sEndSub,.,循环结构非常适合于解决处理的过程相同、处理的数据相关,但处理的具体值不同的问题。我们把能够处理这类问题的语句称为循环语句。VB提供了三种不同风格的循环语句,它们分别是:(1)ForNext语句;(2)WhileWend语句;(3)DoLoop语句。,.,二、For循环,For循环的一般格式如下:For循环变量=初值To终值Step步长循环体Next循环变量说明:,.,1格式中各项的说明循环变量:亦称为循环控制变量,必须为数值型。初值、终值:都是数值型,可以是数值表达式。步长:循环变量的增量,是一个数值表达式。一般来说,其值为正,初值应小于终值;若为负,初值应大于终值。但步长不能是0。如果步长是1,Step1可略去不写。循环体:在For语句和Next语句之间的语句序列。Next后面的循环变量与For语句中的循环变量必须相同。,.,2执行过程(1)系统将初值赋给循环变量,并自动记下终值和步长。(2)检查循环变量的值是否超过终值。如果超过就结束循环,执行Next后面的语句;否则,执行一次循环体。(3)执行Next语句,将循环变量增加一个步长值再赋给循环变量,转到(2)继续执行。以上执行过程用流程图描述,如图所示。,.,.,这里所说的“超过”有两种含义,即大于或小于。当步长为正值时,循环变量大于终值为“超过”;当步长为负值时,循环变量小于终值为“超过”。Forn=1To10Step3Printn,Nextn,.,3注意事项For语句和Next语句必须成对出现,缺一不可,且For语句必须在Next语句之前。循环次数由初值、终值和步长确定,计算公式为:循环次数=Int(终值初值)/步长+1),.,【例5.1】求N!(N为自然数)。分析:由阶乘的定义,我们可以得出N!=1*2*(N-2)*(N-1)*N=(N-1)!*N,也就是说,一个自然数的阶乘,等于该自然数与前一个自然数阶乘的乘积。,.,程序如下:PrivateSubForm_Click()DimI%,f&,n%n=InputBox(“输入一个自然数:”,输入提示,10)f=1ForI=1Tonf=f*INextIPrintn;!=;fEndSub,.,.,程序如下:PrivateSubForm_Click()DimI%,n%,p#n=InputBox(请输入n的值(1-32767)p=1ForI=1Tonp=p*(4*I*I)/(2*I-1)*(2*I+1)NextIp=2*pPrintn=;n;时,=;pEndSub,.,三、While循环,ForNext循环,它适合于解决循环次数事先能够确定的问题。对于只知道控制条件,但不能预先确定需要执行多少次循环体的情况,我们可以使用While循环。While语句格式如下:While条件循环体Wend,.,1While语句说明“条件”可以是关系表达式或逻辑表达式。While循环就是当给定的“条件”为True时,执行循环体,为False时不执行循环体。因此While循环也叫当型循环。2执行过程(1)执行While语句,判断条件是否成立。(2)如果条件成立,就执行循环体;否则,转到(4)执行。(3)执行Wend语句,转到(1)执行。(4)执行Wend语句下面的语句。,.,.,结合下面的程序段,我们做进一步的说明:x=1Whilex5Printx,x=x+1Wend该程序段的执行结果是:1234,.,3While循环的几点说明(1)While循环语句本身不能修改循环条件,所以必须在WhileWend语句的循环体内设置相应语句,使得整个循环趋于结束,以避免死循环。(2)While循环语句先对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论