第4章 基本程序设计结构.ppt_第1页
第4章 基本程序设计结构.ppt_第2页
第4章 基本程序设计结构.ppt_第3页
第4章 基本程序设计结构.ppt_第4页
第4章 基本程序设计结构.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1,第4章 基本程序设计结构,本章学习目标: 1掌握赋值语句,inputbox()、msgbox()函数; 2掌握print方法的使用; 3理解选择结构及其特点; 4掌握常用的几 种选择结构; 5理解选择的构成及其执行过程; 6理解循环结构及其特点; 7掌握常用的几种循环结构; 8理解嵌套的构成及其执行过程。,2,4.1 顺序结构程序设计,各条语句将按照在程序中出现的位置依次执行,这就是最简单的顺序结构,3,4.1.1 赋值语句,赋值语句:将右边表达式的值赋给左边的变量。 格式: let 变量名 = 表达式 let 对象名.属性名 = 表达式 通常都省略let关键字。 功能:程序在执行过程中,首先计算右边表达式的值,然后将表达式的值赋值给变量名或指定对象的属性。 例如:给整型变量x赋值67: dim x as integer let x = 67,4,4.1.1 赋值语句(续),例如:给文本框的text属性赋值“欢迎使用visual basic 6.0!“的语句表达式为: text1.text = “欢迎使用 visual basic 6.0!“ 说明: (1) let 是赋值语句的关键字,是一个可选项,通常省略; (2) 当表达式为数值型且与变量的精度不相同时,强制转换成左边变量的精度。例如:ia% = 4.7 ia是整型变量,ia中的结果是5; (3) 当表达式是数字字符串,左边变量是数值类型时,自动转换成数值类型再赋值;但当表达式有非数字字符或空串时,则出错。,5,4.1.1 赋值语句(续),例如; n%=“123” n中的结果是123,与 n%=val(“123“)效果相同 n%=“1a23“ 出现“类型不匹配”的错误 (4) 赋值语句中的“=”与关系运算符中的“=”的作用截然不同。 例如: a=7=9 其中,第一个“=”是赋值运算符,第二个“=”是关系运算符。,6,4.1.1 赋值语句(续),赋值号左边只能是变量,不能是表达式、常量。如下面的赋值语句是错误的。 sin(x)=x+y 左边是表达式 5=sqr(s)+a+b 左边是常量 x+y=a+b 左边是表达式 (5) 不能在同一语句中给多个变量赋值。例如:a=b=c=1 右边两个“=”作为关系运算符处理,先进行b=c的的比较,结果为true(-1);接着进行true=1的比较,结果为false(0);最后将false的值赋给a。,7,4.1.1 赋值语句(续),(6) 当逻辑型赋值给数值型时,true转换为-1,false转换为0;反之,当数值型赋给逻辑型时,非0转换为true,0转换为false。 (7) 任何非字符类型的值赋给字符变量时,系统自动转换为字符类型。 注意:在visual basic中,如果变量未被赋值而直接引用,则数值型变量的值为0,字符型变量的值为空串“ “,逻辑型变量的值为false。,8,4.1.2数据的输出,print方法可以用于在窗体、图片框和打印机以及debug窗口上显示数据。 1.print方法语法格式 对象名.print,|; 其中,表达式列表是显示或打印的输出项。如果省略,则显示(输出)一个空行。 例如:form1.print “visual basic“ 在form1窗体中显示“visual basic” picture1.print “visual basic“ 在图片框picture1中显示“visual basic” print “visual basic“ 在当前窗体中显示“visual basic”,9,print方法使用说明,使用说明: (1) 对象名. 可以是窗体名、图片框名,也可以是立即窗口“debug”。若省略对象,则表示在当前窗体上输出。 (2) “输出表列”是一个或多个表达式,省略为空行,若是多个表达式可以使用逗号(,)、分号(;)或空格分开。其中: ;(分号或空格):表示光标定位在上一个显示的字符后; ,(逗号):表示光标定位在下一个打印的开始位置处,打印区间隔为14列。 (3) print方法具有计算和输出的双重功能,对于表达式,则先计算后输出。 例如:x5;y10 print (x+y)/3 输出结果为5。,10,与print有关的一些标准函数,可用print方法配合tab、spc函数,使信息按指定的格式输出。 (1)tab 函数 语法格式:tab(n) tab 函数把光标移到由参数 n 指定的位置,并从该位置输出信息。要输出的信息放在 tab函数的后面,并用分号隔开。例如: print tab(25); 1250 将在第25个字符位置开始输出数值1250。,11,与print有关的一些标准函数,【例4-1】设有某班级的部分学生名单如下:姓名、年龄、籍贯、专业、黎明23北京计算机张华22上海生物技术刘娟22南京经济学杨萍23云南外语编程序显示表格中的数据。,12,与print有关的一些标准函数,private sub form_click() fontname = “楷体_gb2312“ 显示输出何种字体 fontsize = 12 显示输出字体大小 print “姓名“; tab(8); “年龄“; tab(16); “籍贯“; print tab(24); “专业“ print print “黎明“; tab(8); 18; tab(16); “北京“; tab(24); “计算机“ print “张华“; tab(8); 17; tab(16); “上海“; tab(24); “生物技术“ print “刘娟“; tab(8); 19; tab(16); “南京“; tab(24); “经济学“ print “杨萍“; tab(8); 19; tab(16); “云南“; tab(24); “外语“图4-1 程序运行结果 end sub,13,与print有关的一些标准函数,(2)spc 函数 语法格式:spc(n) 在print的输出中,spc函数是在输出下一个表达式之前首先跳过n个空格。,图4-1 程序运行结果,14,4.1.3 用户交互函数和过程,1、inputbox()函数 inputbox函数是从键盘输入数据的函数。利用它可产生一个对话框,提示用户输入数据,并返回用户所输入的内容,返回数据为字符串。 语法格式: inputbox prompt,title,default,xpos,ypos ,helpfile,context 说明: (1)prompt是一个字符串,用来指定输入框中显示的信息。 如果prompt的内容超过一行,可以在每一行之间用回车符(chr(13)、换行符(chr(10)或回车与换行的组合(chr(13)+chr(10)将各行分割开来;,15,4.1.3 用户交互函数和过程(续),(2)title用来指定输入框的标题,如果缺省该参数,则用工程名作为标题; (3)default是一个字符串,用来指定文本框中的缺省内容,该参数缺省为空; (4)xpos和ypos是数值表达式,必须成对出现或成对缺省。这两个数值用来指定输入框左上角相对屏幕的位置,输入框的默认位置是水平方向居中,垂直方向距下边大约三分之一处;,16,4.1.3 用户交互函数和过程(续),【例4-2】单击窗体将出现如图4-2所示的输入框。单击“确定”按钮,可将输入的内容显示在窗体上。 程序代码: private sub form_click() dim username as string username = inputbox(“请输入要查询的姓名,然后按确定按钮“, “输入提示“, “wang “) print username end sub,17,4.1.3 用户交互函数和过程(续),inputbox prompt,title,default,xpos,ypos ,helpfile,context 说明: (1) 用户在输入文本框中输入数据后,如果单击“确定”按钮或按回车键,即表示确认,并返回包含文本框内容的字符串;如果单击“取消”或按esc键,则放弃当前输入,并返回一个空字符串。 (2) 每执行一次inputbox函数,只能输入一个值,如果需要输入多个值,则需要多次调用inputbox函数。 (3) inputbox函数返回值的数据类型为字符串。,18,msgbox()函数,msgbox函数可以用对话框的形式向用户输出一些必要信息,还可以让用户在对话框内进行相应的选择,然后将该选择结果传输给程序。 语法格式: msgbox(prompt,buttons,title,helpfile,context) 其中:title、helpfile 和context参数与inputbox函数中的同名参数类似 。,19,msgbox()函数,(1) prompt参数:用于显示对话框的提示信息,通知用户应该做什么选择,或者直接确认信息。该参数为字符串型变量,最大长度为1024个字符,多余部分会被删掉。在内容少于1024个字符时,若一行无法容纳,可以自动换行或自己添加回车符和换行符来决定换行位置(字符串+chr(10)+ chr(13)+字符串)。此参数不允许省略。 (2) buttons参数:用于控制对话框中按钮的数目及形式、使用的图标的样式、哪个按钮为默认按钮以及强制对该对话框做出反应的设置。该参数为整数型数值变量,具体数值由上述四种控制的取值之和决定。,20,msgbox()函数 button的取值见p58 (电子教材6),msgbox(prompt,buttons,title,helpfile,context) 在使用buttons参数时,只需在以上四类中分别选出合适的数值或相应的常量,将数值直接相加或者将常量用加号连接即可得到buttons参数的值。在每一类中选择不同的值会产生不同的效果,一般对于选择的值最好用常量表示,这样可以提高程序的可读性。此参数可以省略,若省略时代表值为0,只显示一个ok按钮,而且此按钮为默认按钮。msgbox函数的返回值是一个整数数值,此数值的大小与用户选择的不同按钮有关。,21,msgbox过程,语法格式: msgbox prompt,buttons,title,helpfile,context msgbox语句中的各参数与msgbox函数相同,由于msgbox语句无返回值,因而常用于简单的信息提示。 例如: msgbox “程序运行完毕,请先存盘后再关机!“, vbyesno + vbinformation,“提示“,22,4.1.4其它语句,1注释语句: 在程序中加入注释,以提高程序和可读性 其语法格式为: rem 或 说明: (1) 指要包括的任何注释文本。在rem关键字和注释内容之间要加一个空格。可以用一个英文单引号“”来代替rem关键字。 (2) 如果在语句行后面使用rem关键字,必需用冒号(:)与语句隔开,或者另起一行,rem 和注释语句之间应有空格。若用英文单引号“”,则在其他语句行后面不必加冒号(:)。,23,结束语句(end),格式: end 功能:终止当前程序,重置所有变量,并关闭所有数据文件. 说明: (1)通常用来结束程序的执行。 (2) 其它用途: end sub 结束一个 sub 过程 end function 结束一个 function 过程 end if 结束一个 if 语句块 end type 结束记录类型定义 end select 结束情况语句,24,with语句,with结构用于对一个对象或用户定义对象执行一系列的语句,不能用一个with语句来设置多个不同的对象,其格式为: with 对象 语句块 end with 使用with结构可以对某个对象执行一系列的语句,而不用重复指出该对象的名称。例如,要改变窗体对象的多个属性,在with结构中进行属性的赋值如下: with form1 .height = 2000 .width = 3000 .caption = “这是一个标题“ end with,25,4.2 选择结构程序设计,1 ifthen语句(单分支结构) 语法格式1: if then 语句块 end if 如: a=20:b=30 if ab then t=a:a=b: b=t end if,26,ifthen语句(单分支结构),语法格式2: if then 如:a=20:b=30 if ab then ta:ab:bt 功能:当条件表达式的值为“真”时,则执行then后面的语句或语句块;否则不执行任何操作。 说明:表达式都是逻辑表达式,数值表达式和关系表达式被视为逻辑表达式的特例。当表达式为数值表达式时,visual basic将这个值解释为true或false,即一个为零的数值为false,而任何非零数值都被看作true。,27,2. ifthen else 语句结构 (双分支结构),语法格式1: if then else end if 例4-4,28,2. ifthen else 语句结构 (双分支结构),语法格式2: if then else 功能:当表达式的值为非0(true)时,执行then后面的语句块1,否则执行else后面的语句块2,如图4-6所示,29,3. ifthenelseif语句(多分支结构),if then elseif then else 语句块 n+1 end if,30,3. ifthenelseif语句(多分支结构),说明: (1) 不管有几个分支,程序执行了一个分支后,其余分支不再执行。 (2) elseif子句的数量没有限制,可以根据需要使用任意多个elseif子句。 (3) 语句中的elseif子句和else子句都是可选项,如果省略这些子句,则成为单分支结构。 (4) if.then.elseif 只是 if.then.else 的一个特例。注意,可以使用任意数量的 elseif 子句,或者一个也不用。可以有一个 else 子句,而不管有没有 elseif 子句。 例:4-6,31,4.2.2 select case语句,语法格式: select case 测试变量或表达式 case 表达式列表1 语句块1 case 表达式列表2 语句块2 case else 语句块n+1 end select,功能:根据select case 中的结果与各case子句中的值比较,决定执行哪一组语句块。如果有多个case短语中的值与测试值匹配,则根据自上而下判断原则,只执行第一个与之匹配的语句块。,32,4.2.2 select case语句,说明: 情况语句的执行过程是: 先对“测试表达式”求值; 顺序比较“测试表达式”的值和case子句中的“表达式列 表”的值; 找到匹配值后,则执行该case分支的语句块,把控制转移 到end select后面的语句块; 如果没找到,则执行case else分支的语句块,然后把控 制转移到end select后面的语句块。 (2) “测试表达式”:数值表达式;字符串表达式;为变量;常量。 (3) 每个case子句中的语句块可以是一行或多行vb语句。 (4) “表达式表列”中的表达式必须与测试表达式的类型相同。 (5) “表达式列表”称为域值,可以是下列形式之一(如表4-3所示),33,表达式列表主要形式,(1)常数 case 1 或 case “a” (使用数值和字符串表达式) (2)表达式:case a+b (可使用数值和字符串表达式) (3)表达式: to 表达式case 1 to 9 case “a” to “x” 用来指定一个范围,要求较小的值出现在 to 之前 (4)is 关系表达式:case is100可以配合比较运算符来指定一个数值范围。如果没有提供,则is关键字会被自动插入,34,4.2.3 选择结构的嵌套,在if语句的then分支和else分支中可以完整地嵌套另一if语句或select case语句,同样select case语句每一个case分支中都可嵌套另一if语句或另一select case语句。下面是两种正确的嵌套形式:,35,格式1: if then if then else end if . else . if then else end if end if,36,格式2: if then select case case if then else end if case. . end select . end if,37,4.2.4 条件函数,1. iif函数 使用iif函数也可以实现简单的选择结构,其语法格式如下: result = iif(条件表达式,true部分,false部分) 说明: (1)“result”是函数的返回值,iif函数的工作过程如下:当条件表达式为真时,函数返回值为true(真)部分,当条件表达式为假时,函数返回值为false(假)部分。 (2)true部分和false部分可以是任何表达式。 iif函数可以用来实现简单的选择结构,和条件语句的功能类似。,38,iif函数,例如,有如下件 语句: if x = y then z = x else z = y end if 完全可以用下面的iif函数来代替: z = iif(x = y, x, y),39,2. choose函数,语法格式: result=choose(整数表达式,选项列表) 说明:choose根据整数表达式的值来决定返回选项列表中的某个值。如果整数表达式值是1,则choose会返回选项列表中的第1个选项。如果整数表达式值是2,则会返回列表中的第2个选项,以此类推。若整数表达式的值小于 1 或大于列出的选项数目时,choose函数返回null。 例: result = choose(2, “+“, “*“) print result,40,2. choose函数,例如:根据nop是14的值,转换成+、-、运算符,语句代码如下: op= choose(nop,“+“,“-“,“,“) 当值为1时,返回字符串“+”,然后放入op变量中,当值为2时,返回字符串“-”,依此类推;当nop是14的非整数时,系统会自动使用取nop的整数进行再判断;若nop不在14之间,函数返回null值。,41,4.3 循环结构,4.3.1 do循环结构程序设计 1. 当型循环结构 语法格式1: do while 语句块1 exit do 语句块2 loop 条件表达式可以是一个逻辑表达式,也可以是一个关系表达式,其值应是逻辑型。 do while和loop应成对出现。,判断 “条件表达式”是否成立,如果成立,则执行循环体,执行完循环体后,再对“条件表达式”的值进行判断,以决定是否进行下一次循环,以此进行下去,当 “条件表达式”不成立时,则退出循环体,执行loop后面的语句,42,例4-9 :用当型循环实现1+2+3+4+100的 运算。,dim sum as integer, i as integer sum = 0: i = 1 do while i = 100 sum = sum + i i = i + 1 设置循环控制变量的步长 loop,43,do循环结构程序设计,语法格式2: do until 语句块1 exit do 语句块2 loop 注:exit do语句用于退出doloop循环,判断 “条件表达式”是否成立,如果不成立,则执行循环体,当执行完循环体后,然后再对“条件表达式”的值进行判断,以决定是否进行下一次循环,以此进行下去,当do until后面的“条件表达式”成立(条件表达式为true)时,则退出循环体,执行loop后面的语句,44,do until loop循环,例4-9 :用do untilloop循环实现1+2+3+4+100的 运算。 dim sum as integer, i as integer sum = 0: i = 1 do until i 100 sum = sum + i i = i + 1 设置循环控制变量的步长 loop,45,2. 直到型循环结构,语法格式1: do 语句块1 exit do 语句块2 loop while ,首先执行一次循环体,然后判断loop while后面的条件,如果成立(条件表达式为true),则返回到do,继续执行下一次循环,以此进行下去;当loop while后面的“条件表达式”不成立(条件表达式为false)时,则退出循环体,执行loop while后面的语句。,46,do . loop while ,例: dim sum as integer, i as integer sum = 0: i = 1 do sum = sum + i i = i + 1 设置循环控制变量的步长 loop while i = 100,47,2. 直到型循环结构,语法格式2: do 语句块1 exit do 语句块2 loop until ,首先执行一次循环体,然后判断loop until后面的条件,如果不成立(条件表达式为false),则返回到do,继续执行下一次循环,以此进行下去;当loop until后面的“条件表达式”成立(条件表达式为true)时,则退出循环体,执行loop until后面的语句。,48,doloop until 循环,例: dim sum as integer, i as integer sum = 0 : i = 1 do sum = sum + i i = i + 1 设置循环控制变量的步长 loop until i 100,49,4.3.2 while循环结构程序设计,语法格式: while (

温馨提示

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

评论

0/150

提交评论