您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > VB语言程序设计2008(第二章)
第二章VisualBasic语言基础•常量、变量、运算符和表达式•赋值与注释语句和一句多行与一行多句•基本控制结构•常用内部函数•输入与输出•数组•算法举例2.1.1常量类型:数值型、字符型、逻辑型、日期型1.一般常量123,-456.8,“ABC”,“水产学院”,true,false,#1/3/2004##1MAR2004#,#MARCH1,2004#,&O123,-&HA22.符号常量语法:[Public|Private|Global]Const常数名[AS数据类型]=表达式•表达式可以是结果为数或字符串的表达式或先前定义过的常量•Public或Global说明可在整个应用程序中使用,Private说明只能在该过程中使用。(全局常量)•常量名必须以字母开头,不包含句号或类型说明符,不能超过255个字符。例:ConstPI=3.14ConstEasdouble=2.718constN%=782.1常量、变量、运算符和表达式2.1.2变量1.变量名•字母开头•由字母、数字和下划线组成•不能包含空格、句号、类型说明符•长度不超过255•不能与关键字重名2.变量类型LLL说明1:字符串类型有定长和变长,定长字符串的存储空间为串长;变长字符串的存储空间为10+串长。RETURN说明2:variant有数字类型和字符类型之分。数字类型存储空间为16;字符串类型为22+串长。说明3:variant包含3种特定值:Empty,NULL,Error•Empty:不同于0、零长度字符串、Null的特定值。•Null:未知的数据或丢失的数据,一般用于数据库•Error:已发生的过程中的错误状态。Variant变量赋值之前具有值Empty。包含NULL的表达式,计算结果总是NULLVariant用于在用户不能确定变量的数据类型时声明变量,以便计算机为该变量留内存空间。变体根据实际需要可以为10种任何数据类型中的任何一种。PrivateSubForm_Activate()Dimaasvarianta=1Printaa=thisPrintaEndSub输出结果为:1thisPrivateSubForm_Activate()DimaAsIntegera=1Printaa=thisPrintaEndSub将出现编译错误在变量名后加上“%”或在-32768~32767之间的整数后加上%都表示该变量为整型,例:PrivateSubForm_Activate()a%=234.567c=234.567b=234%Printa,b,cEndSub将打印出235234234.567整型和长整型的区别:(1)占内存空间不同(2)表示数的范围不同单精度最多能保留到小数点后6位有效数字,双精度可保留到小数点后14位(单精度为7位有效数字,双精度为15位有效数字)。单精度的类型说明符为!,双精度的类型说明符为#。货币类型的必要性:为精确表示财务帐目。类型说明符为@,它的精度高,规定精确到小数点后4位,一般的数值型数据在计算机中是以二进制进行计算的,计算有误差,而货币类型是以十进制进行计算的,精确度高。另外,单精度只有7位有效数字,双精度只有15位有效数字,表示大数额的货币时不精确,如:$223555868999234.65,用单精度数表示为:$2.235559E14,用双精度数表示为:223555868999235,用货币类型表示为:$223555868999234.65RETURN3.变量说明(1)显式说明•Dim变量名[As数据类型][,变量名[As数据类型]]……•Static变量名[As数据类型][,变量名[As数据类型]]……•Public变量名[As数据类型][,变量名[As数据类型]]……•Private变量名[As数据类型][,变量名[As数据类型]]……例:DimMynameasstringDimYourNameasString*50DimobjDbasobjectsetobjDb=OpenDatabase(“C:\vb\test.mdb”)说明:•Static定义静态变量•Public定义的变量可以在其他对象的过程中使用•Private定义的是局部变量(2)隐式说明.用类型说明符声明变量例:no%声明no为一个整型变量s$声明s为一个字符串变量d#声明d为一个双精度型变量例:no%=90s$=“hello”d#=3.14159265(3)OptionExplicit作用:为避免写错变量名而引起麻烦,可以使VB只要遇到未声明的变量就发出错误警告。使用方法:•在代码窗口中加入OptionExplicit语句(代码窗口的对象列表中选“通用”,事件列表中选“声明”)•“工具”/“选项”/“编辑器”/选中“要求声明变量”复选框,会自动在任何新模块中插入“OptionExplicit”语句2.1.3运算符和表达式1.运算符•算术运算符:+,-,*,/,\,Mod,^•关系运算符:,=,,=,,=,IS,Like•连接运算符:&,+(字符串连接)•逻辑运算符:and(与),or(或),not(非),Xor(异或),Imp(包含),Eqv(等价)整除运算(\)结果是商的整数部分,7\2结果为3.5的整数部分Mod求两个整数相除以后的余数。在这两种运算中,如果参加运算的是实数,则先按四舍五入原则将他们变成整数,然后进行计算。除法运算(/):两个整型常量或变量进行除法运算的结果如果赋给一个整型量结果为整型,运算结果与整除运算结果一样;如果赋给实型量,结果为实型。Is比较两个对象的引用变量Like进行字符串匹配比较,*匹配多个字符;?匹配单个字符,#匹配单个数字,[列表]匹配列表内的单个字符,![列表]匹配列表外的单个字符,例:s*,s?,s#,[a-f],![a-f]例:s$=“123”slike“12#”slike“12?”slike“12*”S$=“111”slike“1*”snotlike“1?”snotlike“1#”逻辑运算符的运算结果:ABAAndBAOrBAXorBAEquBAImpBFFFFFTTFTFTTFTTFFTTFFTTTTFTT2.运算符的优先级:其中优先级由高到低运算,同级由左到右有括号先算括号内。运算符^*\Mod+&NotAndOrXorEquImp/-===LikeIs优先级高低2.2.1赋值语句格式:变量名或对象.属性名=表达式•表达式可以是常量、变量、对象.属性名、表达式•左右两边类型必须一致,否则强制类型转换•字符与数值不能互相赋值例:Text1.text=“Hello!”DimMynameasstringMyname=“Helen”DimMyAgeasintegerMyAge=Myage+12.2赋值与注释语句和一句多行与一行多句2.2.2注释语句1.REM注释格式:REM注释内容2.单引号‘注释格式:’注释内容两种格式都可以占一整行或半行(写在语句后边对语句注释)前者占半行时需在语句后加上冒号编程技巧:程序调试过程中经常把暂时不用的语句加上注释而不是删除。2.2.3一句多行与一行多句1.一句多行在行尾加上“_”表示续行,即:该行还没完,此时不能在后边加注释例:Text1.text=text1.text+”hello,”_+”大连水产学院”2.一行多句语句之间用冒号分隔。例如:A=8:b=9:c=102.3.1分支结构2.3基本控制结构1.If…Then结构语法:If条件Then语句组EndIf或写作:if条件then语句(必须是单个语句的情况)例:Ifa0Thenb=aElseb=-a2.If…Then…else结构语法:IfAThen或IfA1ThenBB1ElseElseIfA2ThenCB2EndIfElseIfA3ThenB3……ElseBnEndIfIfa0thenprintaEndIfIfa0Thenb=aElseb=-aEndIfIfScore60Thenprint“Fail”ElseIfScore70Thenprint“Pass”ElseIfScore80Thenprint“Middle”ElseIfScore90Thenprint“Good”Elseprint“Excellent”EndIf3SelectCase语句语法:SelectCase变量|表达式Case值1语句1Case值2语句2……Case值n-1语句n-1CaseElse语句nEndSelect例:SelectCasescoreCase5print“Best”Case4print“Better”Case3print“Good”CaseElseprint“Fail”EndSelect说明:(1)值的形式可以是:•具体常数:1,2,3,“A”等•连续的数据范围:1to100,AtoZ•满足某个条件的表达式:I10•多个不同范围,用逗号阁开:1,3to5,9(2)SELECTCase结构在开始处计算表达式的值,IF…THEN…ELSE结构在每个elseif处计算表达式的值(3)如果不止一个case子句与表达式的结果相同则只执行第一个子句(4)caseelse放在selectcase结构的最后4.嵌套•嵌套的if语句中,endif语句自动与最靠近的前一个if语句配对•尽量用缩进的方式书写结构语句和循环语句1Do循环无条件循环:Do语句组[exitdo]语句组Loop有条件循环:条件为True时执行循环体,条件为False时退出循环体。DoWhile条件语句组[exitdo]语句组Loop条件为False时执行循环体,条件为True时退出循环体。DoUntil条件语句组[exitdo]语句组Loop2.3.2循环结构Do语句组[exitdo]语句组LoopUntil条件当满足条件时执行循环体。While条件循环体WendDo语句组[exitdo]语句组LoopWhile条件在循环终止时测试循环条件,循环无条件执行一次:Do循环的循环体中必须有使循环条件变为false的语句,否则,循环会永远进行下去。即:产生死循环。例:c=1DoWhilec5Printc,c=c+1LoopPrintc=1DoPrintc,c=c+1LoopWhilec5Printc=1DoUntilc25Printc,c=c*3LoopPrintc=1DoPrintc,c=c*3LoopUntilc25Printa=1Whilea5Printa,a=a+1WendPrint2.For循环语法:For循环控制变量=循环初值To循环终值[Step步长][循环体][ExitFor]Next变量For语句的执行步骤:Step1:设置循环控制变量为循环初值Step2:如果步长为正,判断循环控制变量是否大于循环终值,如果步长为负,判断循环控制变量的值是否小于循环终值,如果是,退出循环,否则,执行循环体。Step3:循环控制变量=循环控制变量+步长Step4:gotostep2注:步长可以为负,步长缺省时为1Fori=1To5Printthisisthe,i,executeNextiPrintFori=1To5Step2Printthisisthe,i,executeNextiPrintFori=1To5Printthisisthe,i,executeIfi=3ThenExitForEndIfNextiSum=0Fori=1To100sum=sum+iNextISum=0ForI=100to1step–1Sum=sum+INextI设计一个摇奖程序,随机生成一个N位的中奖号码。ConstN=5PrivateSubcmdStart_Click()Dimi,jAsIntegerDimaAsSingleDimStrPrizeAsStringFori=1ToNj=Int(10*Rnd)StrPrize=StrPrize&jFora=1To10000Step0.01Nexta
本文标题:VB语言程序设计2008(第二章)
链接地址:https://www.777doc.com/doc-3163473 .html