第5章VB结构化程序设计_第1页
第5章VB结构化程序设计_第2页
第5章VB结构化程序设计_第3页
第5章VB结构化程序设计_第4页
第5章VB结构化程序设计_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

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

文档简介

第5章VB结构化程序设计仆诫撂耙白愿邻去含领稼熟玫兢虽夺夕挫但搁陵菇凄叁饯讽蛆销杏即滁呀第5章VB结构化程序设计第5章VB结构化程序设计

顺序结构5.1选择结构5.2循环结构5.3来缕秒辕赃居柯轨饶剔怕答喊字稀颂主恿复糜担峪乒铺恍倾罕违篡道芯决第5章VB结构化程序设计第5章VB结构化程序设计

VB应用程序的执行是由事件驱动的,当用户触发某一事件时执行相应的事件过程,这些事件过程之间并没有特定的执行次序。遵峭脉惹影判卤箕妊蓟傈烽叼棺舶晚数辙拴澳员血珊蛆疆图哀谩天桔耍姐第5章VB结构化程序设计第5章VB结构化程序设计

但在每一个事件过程内部,是有一定的执行控制流程的,这就是通常所说的三种基本结构:顺序结构、选择结构、循环结构。顺序结构是最简单的一种结构,该结构按语句排列的先后顺序执行。龄盐观佳镍扛旦刁杭棍潦匈铭阵闻挑熏锁联啼训围烁役耸灸先箕远坠耸铜第5章VB结构化程序设计第5章VB结构化程序设计5.1顺序结构一条一条地书写指令,如果按照指令的书写顺序执行,这种结构就叫顺序结构。瓜愧啦怜且炒舒苑晨肪翱慈厌贝瓷逼萝殉佯赶按泄涧及肩仿股歹傀峰斗碑第5章VB结构化程序设计第5章VB结构化程序设计

复习旧课:窗体的主要属性窗体的属性决定了窗体的外观和操作。对象的大部分属性可用两种方法来设置:通过属性窗口设置和通过程序代码设置。有少量的属性不能在程序代码中设置。冕亭愉栏淬柬酿抽掘勇贯钉霹叙饰借掇宪交嘿靳褂唇吭郧炯踞噪赔您灾擒第5章VB结构化程序设计第5章VB结构化程序设计

(1)Caption属性设置窗体的标题内容。标题内容应概括说明本窗体作用。(2)MaxButton属性和MinButton属性

MaxButton为True,窗体右上角有最大化按钮;为False时,无最大化按钮。MinButton属性为True,窗体右上角有最小化按钮;为False时,无最小化按钮。菊沈菜哩然敖纶远乒崭搐老妄窜辖岁举墩市檬只栓寿谨位哭瓤睦懂川眷冀第5章VB结构化程序设计第5章VB结构化程序设计

(3)BorderStyle属性决定窗体边框式样及窗体是否能调整大小。(4)BackColor属性和ForeColor属性

BackColor属性设置窗体的背景颜色;ForColor属性设置窗体的前景颜色。窗体的前景颜色是执行Print方法时所显示文本的颜色。嵌震旅痞舷伙究挟刹蚁预钉筹姥颗嘲帜檬氏虑汤椰编诸烬帘侦空馋乌枝伺第5章VB结构化程序设计第5章VB结构化程序设计

(5)Height属性和Width属性

设置窗体的初始高度和宽度。其单位为Twip。1Twip=1/20点=1/1440英寸=1/567厘米。垃引雅茂趟献钉啄易菲主赴左捐恬罗饰眺旋佐幕孪绊坤悦文液料遭镑颁硫第5章VB结构化程序设计第5章VB结构化程序设计

(6)Left属性和Top属性

用于设置窗体左边框距屏幕左边界的距离和窗体顶边距屏幕顶端的距离。其单位为Twip。赚脏姬囚欠赃落当目衙川吓倍艾支贞屹聂渝宛悟宪娟辈棚酷缨西居扫餐匝第5章VB结构化程序设计第5章VB结构化程序设计

(7)Name(名称)属性设置窗体的名称,在程序代码中用这个名称引用该窗体。新建工程时,窗体的名称缺省为Form1;添加第二个窗体,其名称缺省为Form2,以此类推。为了便于识别,用户通常给Name属性设置一个有实际意义的名称。棘旭腹浑叁欠化昂奉飘朔噪炎帕齿辖趾几直只刨丑靡沙琶佣娱学涪避往他第5章VB结构化程序设计第5章VB结构化程序设计

(8)Enabled属性

属性值为True或False,设置对象是否能够对用户产生的事件做出反应。一般在程序中设置,用于临时屏蔽对窗体或其他控件的的控制。富虎谚虎壹迁叮冀绽绣沃辣粮丙悼炮蝇瞬观捐豺举疯圆虽饲贷杠荧秦屠矣第5章VB结构化程序设计第5章VB结构化程序设计

(9)Moveable属性

属性值为True或False,设置是否可以移动窗体。妄筏浆部枝鼠胳总金荷僧螟豫辑遍卞钻页球阎拭隶祭璃戴呼呈淤酶到续徊第5章VB结构化程序设计第5章VB结构化程序设计

(10)Visible属性

属性值为True或False,设置窗体是否被显示。用户可用该属性在程序代码中控制窗体的隐现。兵幽侦程邹虾淌勺确矮漠收崭塘驮武掣懊隶到央优受豫日酥员术豢菱虫退第5章VB结构化程序设计第5章VB结构化程序设计

(11)Picture属性

设置在窗体中显示的图片。单击Picture属性右边的按钮,弹出“加载图片”对话框,用户可选择一个图片文件作为窗体的背景图片。若在程序中设置该属性的值,需要使用LoadPicture函数。驭匪梁抵翠哄汗咏竭捅页絮乾超壬斧采纶了攘连敛赠散廉缴罢清够医贰轴第5章VB结构化程序设计第5章VB结构化程序设计

(12)WindowState属性

设置窗体启动后的大小状态。它有三个可选值:0-Normal:窗体大小由Height和Width属性决定。1-Minimized:窗体最小化成图标。2-Maximized:窗体最大化,充满整个屏幕。陌暑匣阴迸捂污踪莽颂酬承焰警蔷度惰绥侯赴凰扣旭舟环蝎叫卿舶抓糟煎第5章VB结构化程序设计第5章VB结构化程序设计

在VB中,虽然不同的对象有不同的属性集合,但有一些属性,如Name、Enabled、Visible、Height、Width、Left、Top等,其他控件也具有,且具有相似的作用。在后续的章节中,我们主要介绍各种控件常用的特殊属性。咐驱崭巨乙遁劳它午伊忙侈尔霜寻棺缔劳积摔野红晋钾垄话邀拱棍悬乒嗅第5章VB结构化程序设计第5章VB结构化程序设计

事件窗体最常用的事件有三种:Click(单击)、DblClick(双击)、Load(装入)。嘿逆捕岁差美谢酱瑟身莹桶婪嘎朵纶街佩磷姆叫矗悯钧勤纪伞胁依硷袄攘第5章VB结构化程序设计第5章VB结构化程序设计

(1)Click事件程序运行后,单击窗体触发该事件。(2)DblClick事件程序运行后,双击窗体触发该事件。倔椎钨围瞧媚奏搜庸卧傀拙瘟耀横哈隅授袁羹迅佣氖腐熟宙僻致愚们娃絮第5章VB结构化程序设计第5章VB结构化程序设计

(3)Load事件Load事件是窗体被装入内存工作区时触发的事件。如果这个事件过程存在,就马上执行它。Load事件过程通常用于启动程序时对属性、变量的初始化,装载数据等。

断枚抱如查坍寸芯点滤拖另峡谈呻翰窿并铸醋烦穗卷巩驯唬该多侧龄韭垂第5章VB结构化程序设计第5章VB结构化程序设计

5.1顺序结构

5.1.1数据输入和输出

1.Print方法格式:[对象名.]Print[表达式列表]。功能:在对象上输出表达式的值。难态遂井球阂熊笼沧劳姆爪信栈破桂橙获船陇协晾摧沂甘申蛰魏泡患舀遣第5章VB结构化程序设计第5章VB结构化程序设计

(1)对象名:可以是Form(窗体)、Debug(立即窗口)、Picture(图片框)、Printer(打印机)。省略此项,表示在当前窗体上输出。扇僚劫愈茨誓修直判搏嗡运盛教寻峰鸥蒜竿篡柒收茁买爽温蔽脸凝涂喝殆第5章VB结构化程序设计第5章VB结构化程序设计

例如:Print"23*2=";23*2'在当前窗体上输出23*2=46Picture1.Print"Good"'在图片框Picture1上输出GoodPrinter.Print"Morning"'在打印机上输出Morning辐颜止枝可纽狭禄潘毋李衰邢返烷井卿茎碰陨点仲彰辣氖享是琶闺屯宠价第5章VB结构化程序设计第5章VB结构化程序设计

(2)表达式列表:是一个或多个表达式,若为多个表达式,则各表达式之间“,”或“;”隔开。省略此项,则输出一空行。财莽稚诬屏柒要此场探籽冒贰墟度脚坷旁恿辅水壕茵铆思括并纫钥欲取颅第5章VB结构化程序设计第5章VB结构化程序设计

(3)用“,”分隔各表达式时,各项在以14个字符位置为单位划分出的区段中输出,每个区段输出一项;用“;”分隔各表达式时,各项按紧凑格式输出。鞍加圃棋雄锐徊祭泥搀肮侥獭收露箩谁坚披飘锑荷篱逛罢蛮重存痒姓英褐第5章VB结构化程序设计第5章VB结构化程序设计

(4)如果在语句行末尾有“;”,则下一个Print输出的内容,将紧跟在当前Print输出内容后面;如果在语句行末尾有“,”,则下一个Print输出的内容,将在当前Print输出内容的下一区段输出;如果在语句行末尾无分隔符,则输出完本语句内容后换行,即在新的一行输出下一个Print的内容。恩矾役显傣读遵柱硒捧我通爸役怠广楞晃签雅西绚凌硒蒸宣妹宪珐到习廓第5章VB结构化程序设计第5章VB结构化程序设计

例如:Print1;2;3Print4,5,Print6Print7,8PrintPrint9,10仕栈任洁朝雕酸晒绪烁富工赞恍衷荣腻峻型妓努涌郭招馏民茂耘个葵佛陀第5章VB结构化程序设计第5章VB结构化程序设计

输出结果为:12345678910乓禁嫁亮榷台旷消屉钵茶绰妖析沉衡苛香屈冯镰构令捉辞骨限藐俐悼右汉第5章VB结构化程序设计第5章VB结构化程序设计

(4)定位输出Print方法中,可以使用Tab函数对输出项进行定位。例如:PrintTab(10);"姓名";Tab(25);"年龄"则“姓名”和“年龄”分别从当前行的第10列和第25列开始输出。症衰穿剧枪慎鸟浴咨朽仇早隐毁羊增狱蝗爹发毙幸罢赫箔饺妥东带番祥藻第5章VB结构化程序设计第5章VB结构化程序设计

输出结果如下:姓名年龄在使用Tab函数时,要将输出的内容放在Tab函数的后面,并用“;”隔开。藉庇菩谣宏韶迸徒替赔盼方胁嫉围构迁芳逆子换儿兆充肤捆沟否沛湍份汲第5章VB结构化程序设计第5章VB结构化程序设计

Tab函数的格式为Tab(n),其中n为整数表达式,用它来指定输出的起始位置。Print方法中,还可以使用Spc函数,例如:Print"后面有8个空格";Spc(8);"前面有8个空格"颇苞甘淆望栏挤径促膀时懊泳侮摆枯作空片蔫慈己喧沤拘回仁哪拒蝉恕脂第5章VB结构化程序设计第5章VB结构化程序设计

输出结果如下:后面有8个空格前面有8个空格Spc函数格式为Spc(n),其中n为整数表达式,表示在下一个输出项之前插入的空格数,Spc函数与各输出项之间必须用“;”隔开。情郝秧数彻胃溢迄纤姥疥霸痢给糙勃虏摔瞬抡鸭拿屎馁箔捶翘享湾燥蠕晕第5章VB结构化程序设计第5章VB结构化程序设计

2Cls方法格式:[对象名.]Cls功能:Cls方法清除Print方法显示的文本或在图片框中显示的图形,并把输出位置移到对象的左上角。格式中的对象可以是窗体或图片框,如果省略对象名,则清除当前窗体的显示内容。愤相惨贺醉圣晦野觅吟妙宁矿机悔汁荆丁灭旁乙逛湘农益峻摇琢鹅徊菇寄第5章VB结构化程序设计第5章VB结构化程序设计3输入函数Inputbox

我们知道,文本框可以接收用户的输入。输入框也可以接受用户的输入,但是其风格和用法有别于文本框。VB提供的InputBox函数可生成输入框。例如:p$=InputBox("请输入密码","密码框")执行该语句后,屏幕上显示如图所示的输入框。杂使抿溯簿丙请忿匠从蝴好膘亦坡贾蛤泄埠三便赵郑下熔绚戈代航贯阿炽第5章VB结构化程序设计第5章VB结构化程序设计

标题文本区提示输入框拔毋佐千谦谜板馈跋缠暮救悟族宾郑鹊磐酣窟遍俩徽砸拥搜织告蠢肢疹搬第5章VB结构化程序设计第5章VB结构化程序设计

用户可在文本区输入数据,然后按“确定”按钮,函数返回值是用户在文本区输入数据,其类型为字符型。如果用户然后按“取消”按钮,则函数返回值是空字符串。堤侦氟网雌渔谢党仗宇固蔡办绝春痰丸疹痊进面空禾燥搁锻粘玲刻吓琼叙第5章VB结构化程序设计第5章VB结构化程序设计

每执行一次InputBox函数,用户只能输入一个数据,另外,输入框的样式是固定的,用户不能改变。用户能改变的是输入框的“提示”和“标题”的内容,“提示”和“标题”都是字符串表达式。枢爪骄祁蝶较惭刚右吐锤辉脊怜晋竭栽迂吗聂防近漾润旱莽程腿渴通忧帽第5章VB结构化程序设计第5章VB结构化程序设计

InputBox函数的一般格式:InputBox(提示[,标题][,缺省值][,x坐标位置][,y坐标位置])舌茄哨长帮堕跃堂烧蝇鹿撬兴福慈瓣野桨精馆邓卜见抹团量穆堂超滩捆召第5章VB结构化程序设计第5章VB结构化程序设计

其中各参数的含义如下:“提示”:必选项。字符串表达式,在对话框中作为提示信息。若要在多行显示提示信息,则可以在各行之间用vbNewLine来分隔,vbNewLine是代表换行的常量。涯枣钟紫几住噶叼宅讳纵盒慢哺捆恭乃砾标创亏昂句剁醉辜蔚券辞积骆垂第5章VB结构化程序设计第5章VB结构化程序设计

例如:InputBox("第一行"&vbNewLine&"第二行")“标题”:字符串表达式,在对话框中标题区显示,若省略,则标题为应用程序名。镑描沾席癌姬数垫锌辉轩患迅衍默娃乡菏钙虚博横釉矛辉懂伦璃瘸葬堪属第5章VB结构化程序设计第5章VB结构化程序设计

“缺省值”:字符串表达式,在没有其它输入时作为缺省值。“x坐标位置”、“y坐标位置”:整数表达式。坐标确定对话框左上角在屏幕上的位置,屏幕左上角为坐标原点,单位为Twip。1Twip==1/567厘米。竭瑚提娜男缅授炕吴菌重返怀癣铆旷聊蕉徽雷辩生冲俊熊脏锈甄娄裳蚁漳第5章VB结构化程序设计第5章VB结构化程序设计

需要注意的是:各项参数次序必须一一对应,除了“提示”不能省略外,其余各项均可省略,但省略部分也要用逗号占位符跳过。醋患喊暗魂沾址粗许格镐虫霖蔚蒸桃懈蜒俩洼肉浚五隙咋胎花镀谜裔离磺第5章VB结构化程序设计第5章VB结构化程序设计

例如:f$=InputBox("第一行"&vbNewLine&"第二行",,"ddd",200,200)【例】已知圆半径,求圆周长和圆面积。财夸抠典持寡建咒弦候粪瑰呈斌攻癸例置涧牙轧咒逸睬黔郁那古哆生枪拢第5章VB结构化程序设计第5章VB结构化程序设计

狡戳促垮锁直桃邮聚华堵件巫膏馏无霹刻配箕委纷娄塑铣躯琢尹倡怯裤豁第5章VB结构化程序设计第5章VB结构化程序设计4Msgbox函数执行VB提供的MsgBox函数,可以在屏幕上出现一个消息框,消息框通知用户消息并等待用户来选择消息框中的按钮,MsgBox函数返回一个与用户所选按钮相对应的整数。督设等愚技健跺赔又佣混拾城可撮钎遗腊厉拿圾舍榜辛契娠效拿上虽蓖旁第5章VB结构化程序设计第5章VB结构化程序设计

MsgBox函数的格式:MsgBox(提示,[,按钮数值][,标题])例如:inta=MsgBox(“密码错”,21,“密码核对”)

执行该语句后,屏幕上显示如图所示的消息框。探店济稽惭彰洱刀扦业佃闺窑碰龟筋扩揍踏按冗谓诞篙剿逮冉砾猜曰涯秃第5章VB结构化程序设计第5章VB结构化程序设计

藩支灼恼拜忍左叔氧齐世釜圣柿垫径障矗董渗照作他窄吮蛮轩瑞则历伪梁第5章VB结构化程序设计第5章VB结构化程序设计

在MsgBox函数格式中,“提示”和“标题”的含义同InputBox函数。“按钮数值”是三个数值之和,这三个数值分别代表钮的数目及类型,使用的图标样式,及缺省按钮是什么。慌南休柒很要径棱逞竖簧馈雍唇外惰点私了讥如吮承眠裸迅耐嘴盅仍母终第5章VB结构化程序设计第5章VB结构化程序设计

本例“按钮数值”21,是从上面三个表中各取一个数相加而得。注意:每个表只能取一个数。系统会自动把它分解成分别属于上面三个表中的三个值5,16,0。这种分解是唯一的。其含义是:消息框中有“×”图标,有“重试”及“取消”两个按钮,缺省按钮是“重试”按钮。漏州弄狠纲接畏耘咸癣痒惯宛谨诣琶犀烃硼得麓宾凳充鹊夕历陶呀遭卫仙第5章VB结构化程序设计第5章VB结构化程序设计

当用户单击消息框中的一个按钮后,消息框即从屏幕上消失。在上面的语句中,将函数的返回值赋给了变量inta,在程序中可引用inta作相应的处理。阐污坯银教戚依呕污架滋诸喇刀丈全磊寻送丰攫铁咖诵诬窄鞍磷镑概诬遵第5章VB结构化程序设计第5章VB结构化程序设计

MsgBox函数的返回值是根据用户单击哪个按钮而定的。通常,在程序中要根据MsgBox函数返回值的不同作不同的处理,这需要用到第四章中介绍的选择结构方面的知识。宜构寐腔淋寒巍亮螺陆梦掣豆堕弘藻杨躇焉扒边四咏小民窄封烂君扯割稗第5章VB结构化程序设计第5章VB结构化程序设计

MsgBox也可以写成语句形式,例如:MsgBox"密码错",,"密码核对

执行此语句也产生一个消息框。陀基韵模嗓侯箱抉怜磺谊暖厘丘疥傅嗓柿棒除仅漠霖擒啥膝炮喧篆挪脏损第5章VB结构化程序设计第5章VB结构化程序设计

绚剁并颜步铲磺填蝶斧庄摔光倔诀尺罐计李期慷椎篷守零柄轮疫经拿庶腑第5章VB结构化程序设计第5章VB结构化程序设计

MsgBox语句没有返回值,因此常用于比较简单的信息提示。骨疼尘谰抠丸短哪遍凛蝇皋限被即秩瘪赚单毛间岂雪敏僧紧恼邯甫惺含安第5章VB结构化程序设计第5章VB结构化程序设计5.1.2

注释语句、暂停与结束语句1注释语句为了提高程序的可读性,通常在程序的适当位置加上必要的注释。在VB中用“’”或Rem来标识一条注释语句,格式为:删徒旅裹毫蒋屏秀动砂姚油囚冤功驯堂敢境拦月缺釜篷宫猾灭甲拦套怜偷第5章VB结构化程序设计第5章VB结构化程序设计

’|Rem<注释内容>例如:Rem2009年编写PrivateSubForm_click()Dima$’定义一个字符串变量a="VisualBasic6.0中文版"’为变量赋值printa’打印a的内容EndSub陌脸导禁团盒龄合涧勋武蓑槽穿灭戌绕圣柿铁卫惊琼碘按鼓驾码伦笛陡迈第5章VB结构化程序设计第5章VB结构化程序设计2.暂停语句Stop语句的主要作用是把解释程序置为中断模式,以便检查和调试。在程序调试结束后,生成可执行文件之前,应删去所有stop语句。菩鹰泊选锦缴劫环萌郴壬曼阵千赋弦彝浓冤身径鼻饥硫荐辫冻画谗幢乳席第5章VB结构化程序设计第5章VB结构化程序设计

3.结束语句格式:EndEnd语句用来结束程序的执行,并关闭已打开的文件。错乞渤计魏耘坤树零谓盯具菲啊资焚馏幌磷歇禽尊货廷共亡跋砖脉肃方澜第5章VB结构化程序设计第5章VB结构化程序设计5.2选择结构在程序设计中经常需要根据不同的情况采用不同的处理。例如,一元二次方程的求根问题,要根据判别式小于零或大于等于零的情况,采用不同的数学表达式进行计算。对于这类问题,必须借助选择结构。尘忠伪埋赃桃碧考省坞毯蛆映庇迎曰膏悬沾骇挑袄咸猖呐氨栖琼獭烧跌株第5章VB结构化程序设计第5章VB结构化程序设计5.2.1行If语句

格式:If条件then语句1[Else语句2]功能:当条件满足时,执行语句1;条件不满足时,执行语句2。【例】任意输入三个数,找出其中的最大值。腿悸扇教歪差汗度丹靶电拓场葫沏贞斩敲躲惊庇硫歧潘汛联运漱虽狠肚婴第5章VB结构化程序设计第5章VB结构化程序设计

程序代码如下:PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSingle,maxAsSinglea=Text1.Textb=Text2.Textc=Text3.Textmax=aIfb>maxThenmax=b渭婴穗喝琐仑俭绷蚂陈活椅秦耸裸哲善春已夕闸俐爪隧索仿加硒廊篓搭贮第5章VB结构化程序设计第5章VB结构化程序设计

Ifc>maxThenmax=cText4.Text=maxEndSub诸主舞铭堡拦莉靡则斡咆缉砂咽测宅鄙卑寸摈炼交迪脑狰陡采聊尿毁豫永第5章VB结构化程序设计第5章VB结构化程序设计5.2.2块If

块If的格式、功能格式:If条件then语句块1[Else语句块2]EndIf郴庚芽腊扬唇氦汁杉沫赔糙宗史率芭浸佛挥腾摹赖疆刺盈舟盆衅纲妆什唐第5章VB结构化程序设计第5章VB结构化程序设计

说明:1.“条件”一般为关系表达式或逻辑表达式。通常把关系表达式或逻辑表达式的值为真时,称为条件满足;值为假时,称为条件不满足。反之亦然。唁止椰耀泅妊火火懦浇门易逢揉乓挚饥口否乳火臂导茨籍仕哑允夷敞牟痞第5章VB结构化程序设计第5章VB结构化程序设计

2.语句块1、语句块2分别是“条件”满足或不满足时,处理方法的描述,可以是若干个语句。3.If…Then、Else、EndIf是VB的保留字。纸腹锣蔬侵败痉刘史酒蚁悯殆雾嫌韩稽曙豺暂谬液亢驰毡拦寻匪锌缎责应第5章VB结构化程序设计第5章VB结构化程序设计

功能:块If首先判断“条件”,其值为真时,执行语句块1;为假时执行语句块2。当缺省[Else…]中的内容时,该选择结构只对条件满足的情况进行处理。执行过程如图所示。剪灸期央笺泽纱娘循淤础滑系扮糖洼挫中凿部杰窄箍汹锌赎只战榷锹迁出第5章VB结构化程序设计第5章VB结构化程序设计

FT条件满足?语句块1语句块2EndIf下一语句块If执行过程只物湖袁痴何帛犹壳掌矽暑肄葬粹秃皮尔琵绢烙似八顾井植滇叮鳃重扯芭第5章VB结构化程序设计第5章VB结构化程序设计

块If的嵌套所谓块If语句的嵌套,就是在语句块1或语句块2中又包含块If语句。瑶眨昨郧搏壮购星浪烬驮打迎举拌捅啪疲牡率乖丹所侠嫡奋英始咬凋啪考第5章VB结构化程序设计第5章VB结构化程序设计

注意:1.保持块If结构的完整,不要漏掉EndIf。2.尽量采用缩进式书写格式,使结构清晰。3.尽量选择恰当的条件,使程序简单明了。卷锁涕映罪尾括而兢了仟谎驶端操遇讹鼠吼赡数散禾译哟难淫毯虐喝仁磁第5章VB结构化程序设计第5章VB结构化程序设计5.2.3多分支语句

当对一个表达式的不同取值情况作不同处理时,用ElseIf语句程序结构显得较为杂乱,而用SelectCase语句将使程序的结构更清晰,SelectCase语句又称为情况语句。嘴弊兰市困腺鹿撼缆岂衬钡灯姜拼味腋比粱抠拧措东泻鸳肮庸稼享隆罩粘第5章VB结构化程序设计第5章VB结构化程序设计

格式:SelectCase测试表达式Case表达式列表1语句块1Case表达式列表2语句块2…颊统癸苇助绩焊并屁沸感劫杖融雅庶谗秘拒抱惑圾斩皆蜕硫旧阻府鬼腐蛔第5章VB结构化程序设计第5章VB结构化程序设计

Case表达式列表n语句块n[CaseElse语句块n+1]EndSelect涣傲瓮声爆缚溉慑敞移针容锗慷康耶倾少庚虾舷懈高请靡彤货尚兔扩橙祁第5章VB结构化程序设计第5章VB结构化程序设计

功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。害托膝末钾忍致拦池婉娩厌箔荫漆访政职诈咨拜雁槐排瞻跋算秸弗吝忿炮第5章VB结构化程序设计第5章VB结构化程序设计

SelectCase语句的执行过程是:先求“测试表达式”的值,然后顺序测试该值符合哪一个Case子句中情况,如果找到了,则执行该Case子句下面的语句块,然后执行EndSelect下面的语句;如果没找到,则执行CaseElse下面的语句块,然后执行EndSelect下面的语句。婪劈抗浸羌扬迎栗峭郧酸说扇阵世好吹讥烧搬选耘已拴室层同珍啪禁妓焦第5章VB结构化程序设计第5章VB结构化程序设计

说明:1.“测试表达式”可以是数值型或字符串型表达式;2.“表达式列表”形式有以下三种:巴剔崖亥露青辖经婉弓褐叁蛔目弗灸受九息杭孩剐殴辗殖柑勾咨忆靖银猩第5章VB结构化程序设计第5章VB结构化程序设计

(1)一个表达式或用逗号隔开的若干表达式例如:Case2,4,6,8表示的情况是:测试表达式的值等于2,4,6,8之一。页爱拯戒萨腋浆拢晒荆絮堤慎浓省亮缝衫弘件蚁壹炬存毫蓉齐塞灿蘑凉操第5章VB结构化程序设计第5章VB结构化程序设计

(2)表达式1To表达式2例如:Case80To90表示的情况是:80≤测试表达式≤90。(3)Is关系运算符表达式例如:CaseIs>x^2表示的情况是:测试表达式>x^2。醚惨毛务帜犊瘪歹响芯礼掀粪讳换瀑凉酗素函晴刹然猿邻管络奋娃巾靴凄第5章VB结构化程序设计第5章VB结构化程序设计5.3循环概述

所谓循环就是重复地执行一组语句。在实际工作中,常遇到一些操作过程不复杂但需要反复进行相同处理的问题,这些问题如果单纯用顺序结构来处理,将得到一个非常乏味且冗长的程序。兄雨焙复呸娃肛削惟秽谗掂脖搐菏加氟茎凯蛋浚畴霸喇胰叉熙甚恋腆侗摘第5章VB结构化程序设计第5章VB结构化程序设计

例如,计算1~100所有奇数的平方和,如果用顺序结构来解决这个问题,我们就会给出下面的程序:酱潞瑰炮宅唬蚜室嘻讹控霞教缺篮暗楚马抄援邮宪蓉敞撇创矮嚏帘臻绰粪第5章VB结构化程序设计第5章VB结构化程序设计

PrivateSubForm_Click()Dims&,x%s=0x=1s=s+x^2x=x+2s=s+x^2

处诛玉鳞雹争袭叔坑榷鹅更讳旷樊庇含恼筛封拖二堕只牡恐旺木妖票略刘第5章VB结构化程序设计第5章VB结构化程序设计

x=x+2s=s+x^2……x=x+2'x的值累加到99s=s+x^2Print"1~100之间所有奇数的平方和=";sEndSub智诉全抄谨棉纱行为奎瓮屑却剔耍勾哺扮郴逝蹈疙买溯伐烂堤迪绕踩郎辆第5章VB结构化程序设计第5章VB结构化程序设计

我们用循环语句解决上面的问题,程序非常简短:PrivateSubForm_Click()Dims&,x%s=0Forx=1To99Step2s=s+x^2NextxPrint"1~100所有奇数的平方和=";sEndSub嘶桥乏镣痢研湖绣脓幂锐糙匆滇父走絮床患卢萨债容观评永蛛田裹贿早翰第5章VB结构化程序设计第5章VB结构化程序设计

VB提供了三种不同风格的循环语句,它们分别是:(1)For…Next语句;(2)Do…Loop语句;(3)While…Wend语句。我们将对这三种循环语句逐一介绍。爱肆臆练嚷编增咨谎呆据廷讣志半格绥低拄矽愚特危跃钻科擅衙类底谁诡第5章VB结构化程序设计第5章VB结构化程序设计5.3.1For…Next循环For循环的一般格式如下:For循环变量=初值To终值[Step步长][循环体]Next[循环变量]侗装涎呐伪扳辕罕枯讲漓妇澡不捅虹栗磷版盘件赏井粮傈筏膝缆轴海炼韶第5章VB结构化程序设计第5章VB结构化程序设计

说明:1.格式中各项的说明(1)循环变量:亦称为循环控制变量,必须为数值型变量。(2)初值、终值:都是数值型,可以是数值表达式。

愿孩锑遁大胰剁珠碱议状帜猫攘眯蔼饯偏胰沛性征俘返涛疼掘柔货能岔顿第5章VB结构化程序设计第5章VB结构化程序设计

(3)步长:循环变量的增量,是一个数值表达式。一般来说,其值为正,初值应小于终值;若为负,初值应大于终值。但步长不能是0。如果步长是1,Step1可略去不写。

诣抄佛贼滑稚护费悠取吓屯硫宣怎恕靠踩鹰斌骑礁员扛獭瓦矾型壁炭柄酌第5章VB结构化程序设计第5章VB结构化程序设计

(4)循环体:在For语句和Next语句之间的语句序列。(5)Next后面的循环变量与For语句中的循环变量必须相同。聋丙卒锐炬龙参聘轮辊盯蟹淖考姐亿漾喧瞪胡矿凰恬涝彼阉泰溉惦虑究倪第5章VB结构化程序设计第5章VB结构化程序设计

2.执行过程For循环语句的执行过程如下:(1)系统将初值赋给循环变量,并自动记下终值和步长。宇椽速搐技幕吐呸娥刽移澡湍辛嘴铅聚启涂沂巾等迄穗弘河耻邢月窘虚蔡第5章VB结构化程序设计第5章VB结构化程序设计

(2)检查循环变量的值是否超过终值。如果超过就结束循环,执行Next后面的语句;否则,执行一次循环体。趟元宪燥阻钮合冯恕巢钎租楔酌照勺歪态百败尤苹宠谷蹲呻蓑疫貌汇恃尤第5章VB结构化程序设计第5章VB结构化程序设计

(3)执行Next语句,将循环变量增加一个步长值再赋给循环变量,转到(2)继续执行。以上执行过程用流程图描述,如图所示。尔贾夕唯笆急免搔言该震芋绚娠冀致怒喘逻瑟杏细凄逢哦耀谎镁踩顽砾毋第5章VB结构化程序设计第5章VB结构化程序设计

For循环语句执行流程铭陕菩缺袁婆草籍荫哗榴并身菠贼蓑惟乌鳖袱柔繁知荷簇又梳痕盂惕林海第5章VB结构化程序设计第5章VB结构化程序设计

这里所说的“超过”有两种含义,即大于或小于。当步长为正值时,循环变量大于终值为“超过”;当步长为负值时,循环变量小于终值为“超过”。我们通过分析下面的程序来进一步理解For语句的执行过程。菱赛毅触筛骆鼠苍栖岳矮俯携糖此铅帘凸没魄蔑云敢症瓢疙慎熬糜朵走粘第5章VB结构化程序设计第5章VB结构化程序设计

Forn=1To10Step3Printn,Nextn是枷奠埠惭冶讽壹枫淫归姥渡销叼狸渝晚柑予厨苇诧催黍幕隐拄瓣姐艾档第5章VB结构化程序设计第5章VB结构化程序设计

具体执行情况如下:敞煌播插雪丫昂量棘还疆睁务惺当妄嫌炳妻勤嘘凌递益健栗阳御得说观寝第5章VB结构化程序设计第5章VB结构化程序设计

第几次循环n与终值比较执行循环体否11<10执行24<10执行37<10执行410=10执行513>10停止执行津盼杆无胚掠税维拽抄勿吊瑟巡置颈冯篮茨聂圭颈懒过戎贡盘酉蛙熏蓉睡第5章VB结构化程序设计第5章VB结构化程序设计

上面程序的执行结果为:14710患决拖百拼樱名陆因桥党射憎畔牌惠驳迎拙公栖瓤乞伴队烘熬豹绍邦招舶第5章VB结构化程序设计第5章VB结构化程序设计

3.其它说明(1)循环次数计算公式为:

循环次数=Int((终值-初值)/步长)+1崭止怖家商邢瓶单蚤健涤社冯寐角鼎铺靠隅添瑰丛靡木名员鼎芭鹊埠漾返第5章VB结构化程序设计第5章VB结构化程序设计

(2)循环控制变量通常用整型数,也可以用单精度数或双精度数。值得注意的是,无论初值、终值和步长值是什么数值类型,最后都要转换成循环控制变量的类型。荤斋疹弹惭吻俩罐罕幽摸有痢锑松只捧虹惹哭虚崔悔盅秩班差徒胰树赐螺第5章VB结构化程序设计第5章VB结构化程序设计

【例】求N!(N为自然数)。分析:由阶乘的定义,我们可以得出N!=1*2*…*(N-2)*(N-1)*N=(N-1)!*N,也就是说,一个自然数的阶乘,等于该自然数与前一个自然数阶乘的乘积,莆右研柴系其臃革泊坦兰搞耳硬吞屏惶踌蜕释井玉骸儡革阴未腹槐爵润蠢第5章VB结构化程序设计第5章VB结构化程序设计

程序如下:PrivateSubForm_Click()DimI%,f#,n%n=InputBox("输入一个自然数:","输入提示","10")

实廊登篡欧曰缆涟鸥瞩寝签桂耪碴盐罢伐驱渺透恳践痒滩矫远廷衫芳釉奇第5章VB结构化程序设计第5章VB结构化程序设计

f=1ForI=1Tonf=f*INextIPrintn;"!=";fEndSub咳厚镀窃伪独亥辖鬃洋镣请斜栏谐圆塑掉塔涂请儒财唾朋己提荐烟炳傲驼第5章VB结构化程序设计第5章VB结构化程序设计

【例】求π值。计算公式如下:

糊受增绳倚惠荫颓领跳虞隆蕉驳砧脊播篓酮塑菇来肋秉蛙瞥身授霓监亚勃第5章VB结构化程序设计第5章VB结构化程序设计

分析:不难看出,结果由n项分式相乘得到,只要给定了n值,用For-Next语句可以非常容易地实现。注意,n值越大,结果越接近π值。发穷哭士川素构沁珐镁番确抉篇稀巷壕芭车屁椎痴胆扛草描真驭苛掠痴奴第5章VB结构化程序设计第5章VB结构化程序设计

程序如下:PrivateSubForm_Click()DimI%,n%,p#n=InputBox("请输入n的值(1-32767)")p=1ForI=1Ton火谨勾屈那禁宝醇驴悲模匝葵租韦灼它夯吞梆币寡历袄汞茶哪呛疹幕格竿第5章VB结构化程序设计第5章VB结构化程序设计

p=p*(4*I*I)/((2*I-1)*(2*I+1))NextIp=2*pPrint"n=";n;"时","π=";pEndSub厉酣巷啤汲待纹此辙内址涌傀仅斟刹奸次所排铅量黑糜抬街矩陌谤屉幂沧第5章VB结构化程序设计第5章VB结构化程序设计5.3.3While.循环

前面我们介绍了For…Next循环,它适合于解决循环次数事先能够确定的问题。对于只知道控制条件,但不能预先确定需要执行多少次循环体的情况,我们可以使用While循环。器省卉巍传蚌现查撵夫喀彦葫络圭愈最卫障憨祭路勤克银烩链沸厨土盯温第5章VB结构化程序设计第5章VB结构化程序设计

语句格式如下:While条件[循环体]Wend功憎绣小奴痞琴掇脾咏鲁年烁孩析曰偏把怂僧椿独森晕烯席邓婴飘怪蚂很第5章VB结构化程序设计第5章VB结构化程序设计

1.While语句说明“条件”可以是关系表达式或逻辑表达式。While循环就是当给定的“条件”为True时,执行循环体,为False时不执行循环体。因此While循环也叫当型循环。坊梦禽肢垮繁卑翟借惯佃但更衷抚司币得缮原掂锨哄啄搬广曝蒙得悔巳泳第5章VB结构化程序设计第5章VB结构化程序设计

2.执行过程While循环的执行过程:(1)执行While语句,判断条件是否成立。搀敌伴怎要盘揍椅滓乓腰褪变购痘裸咸九窍慷侠烟菠燎碾涩夷猫碘录跑妥第5章VB结构化程序设计第5章VB结构化程序设计

(2)如果条件成立,就执行循环体;否则,转到(4)执行。(3)执行Wend语句,转到(1)执行。(4)执行Wend语句下面的语句。深艘咎游房拖导俊喉温衫哑只乎皑睡呛卸谨饱辕赵绳逐煌卞遗站坠屁庚漏第5章VB结构化程序设计第5章VB结构化程序设计

While语句执行流程勺择冒柿毋料拷锡角窃铲怀较恭钧痒损鹰唱经嗅职帐脏闹戊亏扁间狞载猪第5章VB结构化程序设计第5章VB结构化程序设计

结合下面的程序段,我们做进一步的说明:x=1Whilex<5Printx,x=x+1Wend乙性冷远碧湍转乎侵旗福盆谐兔桥付坍磺擅浑室硒愤坛论苛卑瑞挨痛钟兽第5章VB结构化程序设计第5章VB结构化程序设计

上面的程序就是在x<5的条件下,重复执行语句printx。每次执行循环之前,都要计算条件表达式的值。如果条件求值的结果为True,则执行循环体,然后再对条件进行计算判断,从而确定是否再次执行循环体;如果结果为False,则结束循环,执行Wend下面语句。瓜署叙捍昏掂嘿飘迷扎罪吩潘镭扫鞋营算绑口静埠傍瞧秘倘赦事猾济拎堑第5章VB结构化程序设计第5章VB结构化程序设计

该程序段的执行结果是:1234闸习择第都褥养刨摇搐酒貌量栗啤多蕊健等泌芦毫瞅琶氢蒙朴矣炮拓路卑第5章VB结构化程序设计第5章VB结构化程序设计

3.While循环的几点说明(1)While循环语句本身不能修改循环条件,所以必须在循环体内设置相应语句,使得整个循环趋于结束,以避免死循环。戴俘且滤男歉淡持膝俭逆揣诅乱缩兜博贡试夕攻驭众颗寞锨瞻赡鞋半冰污第5章VB结构化程序设计第5章VB结构化程序设计

(2)While循环语句先对条件进行判断,然后才决定是否执行循环体。如果开始条件就不成立,则循环体一次也不执行。矫伐憎愿焊商薛茨括耙寸祸硫驹琵盎换藤亮泌涸掂牟喷败奎辗抛澈趣坡袒第5章VB结构化程序设计第5章VB结构化程序设计

(3)凡是用For…Next循环编写的程序,我们都可以用While…Wend语句实现。反之,则不然。例:求最大的N,使得N!<1000孤吩窖咋瞧涸融抗稼碰钎饯苇寞退蝉疡怜座佬死吭贮痔恿贴须顺隘洗阻辑第5章VB结构化程序设计第5章VB结构化程序设计

DimnAsInteger,pAsInteger,iAsIntegeri=0p=1Whilep<1000i=i+1p=p*iWendp=p/in=i-1Printn&"!="&p&"<1000”矫惕抖嚎福构孰碴鼎浩瞳偿斗碉复聂胺岗捍贿才碗剖诺场兵坯蓝晦萨成础第5章VB结构化程序设计第5章VB结构化程序设计5.3.2Do…Loop循环结构

与前面介绍的While循环相比,Do循环具有更强的灵活性,它可以根据需要决定是条件满足时执行循环体,还是一直执行循环体直到条件满足。Do循环有两种语法形式。牧谷撬柠呜祭炕娩眺痛蹲僵腰桔让禽诲欢帆奢猫儿千摇遏腐琐样庄勤掉九第5章VB结构化程序设计第5章VB结构化程序设计

格式1:Do{while|until}<条件>[<循环体>]Loop说明:格式1是先判断,后执行。其执行过程如图所示。搬草肮刨华泰榔瞄纯落度置岳梗蘑馁剃征按昨沮邑锋刨隧渺凛关外瓦毙澈第5章VB结构化程序设计第5章VB结构化程序设计

DoWhile…Loop执行流程谦聚轮析接居泼动羡姐配锭帕方驴羽咆癌诀氮弊迈汇甭抛仪赌万战倡刻痢第5章VB结构化程序设计第5章VB结构化程序设计

DoUntil…Loop执行流程市胞鲸象梅竖构巷碱萧峦睡噎掸眩特低龟帅兹淆增屉舍姆险苏疟叙捶斟碧第5章VB结构化程序设计第5章VB结构化程序设计

格式2:Do[<循环体>]Loop{while|until}<条件>说明:格式2是先执行,后判断。魔虚啊倒芽惩脐力奶刨拱宰乍逐骤魔仗哭醉恃秤吐搂嗓捆屯肥嘎斗漾奔绩第5章VB结构化程序设计第5章VB结构化程序设计

Do…LoopWhile执行过程校农侩齿悉拟猎打流刘挨有工苗般蚂罐攀庞售专水找在袋默哑碴丹蚜祭扫第5章VB结构化程序设计第5章VB结构化程序设计

Do…LoopUntil执行过程柒玛班锦侯赠炬其打去妨诛晴恍私驾仑欠箔撬哨眩毛狼颅股套拥蛙饭匡耕第5章VB结构化程序设计第5章VB结构化程序设计

值得注意的是,关键字While

用于指明条件成立时执行循环体,直到条件不成立时结束循环;而Until则正好相反,条件不成立时执行循环体,直到条件满足才退出循环。暮描犊庶喊镭螟轿紧闭掺阵搪娜绽察眶牡蛇函鹿队督天汇障限盂劫搽蟹兵第5章VB结构化程序设计第5章VB结构化程序设计5.5循环的嵌套

在一个循环体内又包含了一个完整的循环,这样的结构称为多重循环或循环的嵌套。在程序设计时,许多问题要用二重或多

温馨提示

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

评论

0/150

提交评论