VB21 课程总结VB语法基础解析.docx
- 文档编号:28961754
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:29
- 大小:48.53KB
VB21 课程总结VB语法基础解析.docx
《VB21 课程总结VB语法基础解析.docx》由会员分享,可在线阅读,更多相关《VB21 课程总结VB语法基础解析.docx(29页珍藏版)》请在冰豆网上搜索。
VB21课程总结VB语法基础解析
VB21课程总结:
VB语法基础
●编码基础
·编码规则
·数据类型
·变量与常量
·运算符与表达式
·常用函数
●基本的控制结构
·顺序结构
·选择结构
·循环结构
·其他辅助控制语句
·常用算法
----------------------------------------------------------------------------------------------------------------------
●编码基础
1、编码的基本原则
>VB代码不区分字母的大小写
·系统保留字自动转换每个单词的首字母大写
·用户自定义行以第一次为准
>书写习惯的问题:
语句书写自由
·一行可书写几句语句,之间用冒号分隔
·一句语句可分若干行书写,用续行符_(下划线)连接一行
·一行<=255个字符
>注释有利于程序的维护和调试
·一般用Rem开始或者单撇号’
程序书写过程中尽量使用Rem或者单撇号’书写注释,为了以后维护和升级程序
2、数据类型
数据类型
关键字
类型符
前缀
存储大小(字节)
字节型
Byte
无
b
1
逻辑型
Boolean
无
f
2
整型
Integer
%
i
2
长整型
Long
&
l
4
单精度型
Single
!
s
4
双精度型
Double
#
dbl
8
货币型
Currency
@
c
8
日期型
Date
无
dt
8
字符型
String
$
str
字符串
对象型
Object
无
对象
4
变体型
Variant
无
V
按需分配
3、变量与常量
>命名规则
·以字母或者汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于255个字符。
·不要使用VB中的关键字
·VB中不区分变量名的大小写
·为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型
>变量声明
·显式声明用Dim(Public、Private)语句显式声明变量
·隐式声明一般为Variant,语写方便,但可读性差。
>常量
·用户声明常量
形式
Const常量名[AS数据类型]=表达式
·系统提供的常量
系统写义常量位于对象库中,可通过“对象浏览器”查看。
例
vbNormalvbMinimizedvbCrLf【vbCrLf=Chr(13)+Chr(10)回车符与换行符结合
vbCr=Chr(13)回车符vbLf=Chr(10)换行符】等
3、运算符和表达式
>运算符
·算术运算符
例
5+10mod10\9/3+2^2
结果:
10
运算符
优先级
例
结果
^
1
Ia^2
9
-
2
-ia
-3
*
3
ia*ia*ia
27
/
3
10/ia
3.33333333333333333
\
4
10\ia
3
Mod
5
10Modia
1
+
6
10+ia
13
-
6
Ia-10
-7
注:
ia等于3
·字符串运算符
&、+字符串连接运算符
区别
+两边必须是字符串
&不一定
例如
“abcdef”&12345
‘结果为”abcdef12345”
“abcdef”+12345
‘出错
“123”&456
‘结果为”123456”
“123”+456
‘结果为579
注意
‘123’+True‘结果为122,因为VB中的True为-1,而False则是0
True转换为数值-1
False转换为数值0
·关系运算符
将两个操作数进行大小比较,结果为逻辑量,True或者False
字符串比较,则按字符的ASCⅡ码值从左到右一一比较,直到出现不同的字符为止。
例
“ABCDE”>“ABRA”因为是C 结果为False “男字”>”女字” 按汉字的拼音字母比较 运算符 例 结果 = “ABCDE”=”ABR” False > “ABCDE”>”ABR” False >= “bc”>=”abcdef” Ture < 23<3 False <= “23”<”3” True <> “abc”<>”ABC” True ·逻辑运算符 将操作数进行逻辑运算,结果也是逻辑值 条件表达式1And条件表达式2 二个条件表达式圴为True,结果为Ture。 条件表达式1Or条件表达式2 二个条件表达式只要有一个为True,结果就为Ture。 运算符 说明 优先级 结果 Not 取反 1 当操作数为假时,结果为真 And 与 2 操作数均为真时,结果才为真 Or 或 3 操作数中有一个为真时,结果为真 Xor 异或 3 操作数相反时结果才为真 >表达式 ·组成 变量、常量、函数、运算符和圆括号组成,不一定要数字,并且只有圆括号。 ·书写规则 1、运算符不能相邻 例a+-b是错误的 2、乘号不能省略 例x乘以y应写成: x*y不能写成xy 3、括号必须成对出现,均使用圆括号 4、表达式从左到右在同一基准上书写,无高低、大小 ·不同数据类型的转换 1、运算结果的数据类型向精度高的数据类型靠 Integer ·优先级 算术运算符>=字符运算符>关系运算符>逻辑运算符 >常用内部函数 ·数学函数 #Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数,每次运行时,要产生不同序列的随机数。 这时要在Rnd之前,执行Randomize语句 例产生1~100之间的随机数 Int(Rnd*100)+1‘Int取整,因为Rnd不包括1,若要求每次产生的数不一样就要在前面加上Randomize语句 ·转换函数 Chr(66)→“B” 反运算 Asc(“B”)→66 Ucase$(“abcdefg”)→”ABCDEFG” >字符串编码 ·Windows系统对字符采用了DBCS编码,中文2字节,西文1字节 ·而VB中字符采用的是Unicode编码,任何字符2字节 Len(“中国good”)为6‘取字符串的长度 LenB(“中国good”)为12‘取字节数,每个都是二个字节,所以为12 ·字符串函数 Mid$(“ABCDEFG”,2,3)→”BCD”‘Mid$取字符串中间的某一部分,比方说有一个字符串”ABCDEFG”从第二个字符(即是“B”)开始,向后取三个,结果就是”BCD”。 InStr(2,”ABCDEFG”,”EF”)→5‘InStr是指在某个字符串里面搜索一个字串。 并且找到位置。 S=Split(“123,56,ab”,”,”)→S(0)=”123”,S (1)=”56”,S (2)=”ab”‘把字符串进行分拆 Replace(“ABCDABCD”,”CD”,”123”)→”AB123AB123”‘字符串进行替换 ·格式输出函数 例 利用Format函数显示有关的日期和时间 PrivateSubForm_Click() FontSize=12 MyTime=#9: 21: 30PM# MyDate=#8/21/1997# PrintTab (2),Format(MyDate,"m/d/yy") PrintTab (2),Format(MyDate,"mmmm-yy") PrintTab (2),Format(MyTime,"n-m-sAM/PM") PrintTab (2),Format(MyTime,"hh: mm: ssA/P") PrintTab (2),Format(Date,"dddd.mmmm.dd.yyyy") PrintTab (2),Format(Now,"yyyy年m月dd日hh,mm") PrintFormatDateTime(Now)'VB6.0新提供的函数 EndSub 下面是运行结果 而当改成;分号时,就为紧凑输出,如下图 PrivateSubForm_Click() FontSize=12 MyTime=#9: 21: 30PM# MyDate=#8/21/1997# PrintTab (2);Format(MyDate,"m/d/yy") PrintTab (2);Format(MyDate,"mmmm-yy") PrintTab (2);Format(MyTime,"n-m-sAM/PM") PrintTab (2);Format(MyTime,"hh: mm: ssA/P") PrintTab (2);Format(Date,"dddd.mmmm.dd.yyyy") PrintTab (2);Format(Now,"yyyy年m月dd日hh,mm") PrintFormatDateTime(Now)'VB6.0新提供的函数 EndSub 分析: Format函数用于制定字符串或数字的输出格式。 语法: x=Format(expression,fmt) expression是所输出的内容。 fmt是指输出的格式,这是一个字符串型的变量,这一项若省略的话,那么Format函数将和Str函数的功能差不多。 如: 语句 输出 Format(2,“0.00”) 2.00 Format(0.7,“0%”) 70% Format(1140,“$#,##0”) $1,140 fmt字符的意义 字符 意义 字符 意义 0 显示一数字,若此位置没有数字则补0 . 小数点 # 显示一数字,若此位置没有数字则不显示 千位的分隔符 % 数字乘以100并在右边加上”%”号 -+$() 这些字出现在fmt里将原样打出 Format函数对时间进行输出时的意义 fmt 输出 fmt 输出 m/d/yy 8/16/96 h: mm: ssa/p 10: 41: 29p d-mmmm-yy 16-August-96 h: mm 22: 41 d-mmmm 16-August h: mm: ss 22: 41: 29 mmmm-yy august-96 m/d/yyh: mm 8/16/9622: 41 hh: mmAM/PM 10: 41PM 字符说明 @字符占位符。 显示字符或是空白。 如果字符串在格式字符串中@的位置有字符存在,那么就显示出来;否则,就在那个位置上显示空白。 除非有惊叹号字符(! )在格式字符串中,否则字符占位符将由右而左被填充。 &字符占位符。 显示字符或什么都不显示。 如果字符串在格式字符串中和号(&)的位置有字符存在,那么就显示出来;否则,就什么都不显示。 除非有惊叹号字符(! )在格式字符串中,否则字符占位符将由右而左被填充。 <强制小写。 将所有字符以小写格式显示。 >强制大写。 将所有字符以大写格式显示。 ! 强制由左而右填充字符占位符。 缺省值是由右而左填充字符占位符。 你要对a赋值比如你赋值a为123 printformat$(a,"-#.###")=-123. printformat$(a,"#gg.g00")=123gg.g00 printformat(a,"000.00E+00")=123.00e+00 printformat$(a,"-#.###")=-123. printformats$(a,"#.###")这样的格式则不需要补0, printformats$(a,"-0.00")不足的要补0 ---------------------------------------------------------------------------------------------------------------------- Tab(n)从最左第1列开始算起定位于第n列,若当前打印位置已超过n列,则定位于下一行的第n列,这是常常定位不好出现的问题。 在格式定位中,Tab用得最多。 Spc(n)从前一打印位置起空n个空格。 例如,下面程序段显示了Tab与Spc的区别,效果如图所示。 PrivateSubForm_Click() Print"1234567890”," PrintTab (1),"**",Tab (2),"%%%",Spc (2),"$$$$" EndSub 运行结果: ---------------------------------------------------------------------------------------------------------------------- ·Shell函数‘调用外部的命令,外部的应用程序 i=Shell(“c: \windows\calc.exe”)‘调用Windows中的计算器程序 ●基本的控制结构 三大结构: 顺序、分支、循环结构 >顺序结构 选择结构 ·If…Then语句(单分支结构) If<表达式>Then 语句块 EndIf 或 If<表达式>Then<语句> 例 已知两个数x和y,比较它们的大小 Ifx t=x x=y y=t EndIf ·If…Then…Else语句(双分支结构) If<表达式>Then <语句块1> Else <语句块2> EndIf ·If...Then...ElseIf(多分支结构) If<表达式1>Then <语句块1> ElseIf<表达式2>Then <语句块2> ... [Else 语句块n+1 EndIf 例 已知变量strC中存放了一个字符,判断该字符是字母字符,数字字符还是其他字符 IfUcase(strC)>=”A”AndUcase(strC)<=”Z”Then‘将变量strC(注: 是一个字符变量,不是个字符串)利用Ucase转化成大字字母 PrintstrC+”是字母字符”‘在屏幕上打印 ElselfstrC>=”0”AndstrC<=”9”Then PrintstrC+”是数字字符” Else PrintstrC+”是其他字符” EndIf 另外的一种专用的多重分支结构 >SelectCase语句 SelectCase变量或表达式 Case表达式列表1 语句块1 Case表达式列表2 语句块2 … [CaseElse 语句块n+1 EndSelect 同上面的例子 SelectCase“a”To”z”,”A”To”Z” PrintstrC+”是字母字符” Case“0”To“9” PrintstrC+”是数字字符” CaseElse PrintstrC+”是其他字符” EndSelect ·循环结构 >For循环语句 (一般用于循环次数已知) For循环变量=初值to终值[Step步长] 语句块 [ExitFor]‘可以利用ExitFor强行退出循环 语句块 Next循环变量 例 计算1~100之间的奇数的和 DimIasinteger Dimsasinteger S=0 Fori=1To100step2 s=s+i Nexti >Do…Loop循环语句 (用于控制循环次数未知) Do{While︳Until}<条件>‘{While︳Until}此处即可以是While也可以是Until 语句块 [ExitDo‘同样利用ExitDo退出循环体 语句块] Loop 例 我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。 可以根据公式 26=13*(1+0.008)n‘即26=13*(1+0.008)^n 直接利用标准对数函数求得 PrivateSubCommand1_Click() X=13 N=0 DoWhilex<26 X=x+1.008 N=n+1 Loop Printn,x‘n就是多少年 EndSub > 其他辅助控制语句 >Exit语句 多种形式 ExitFor、ExitDo、ExitSub、ExitFunction等 作用 退出某种控制结构的执行 >End语句 多种形式 End、EndIf、EndSelect、EndWith、EndType、EndSub、EndFunction等 ‘可以将整个语句结束 作用 End结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。 >With语句 作用 对某个对象执行一系列的操作,而不用重复指出对象的名称。 例 WithLabel1 .Height=2000等价于Label1.Height=2000 .Width=2000等价于Label1.Width=2000 .fontSize=32等价于Label1.fontSize=32 .Caption=”MyLabel1”等价于Label1.Caption=”MyLabel1” EndWith ●常用算法 >累加、连乘 1~100之间的5或7倍数的和 Sum=0‘计数器Sum为0 Fori=1To100‘没有步长Step即为1 IfiMod5=0OriMod7=0Then Sum=Sum+i EndIf Nexti PrintSum 3~10的乘积 t=1 Fori=3To10 t=t*i Nexti Printi >求素数 素数是一个大于2,且不能被1和本身以后的整数整除的整数。 例 求100以内素数的代码 Form=2To100 Fori=2Tom-1 If(mModi)=0ThenGoToNotNextM‘如果被整除,即不是素数。 跳转到下面的NotNextM Nexti Printm‘如果能完整的退出循环,没有跳转。 即是素数,打印。 NotNextM Nextm >最大、最小值 例 随机产生10个100~200之间的数,求最大值 PrivateSubCommand1_Click() Max=100 Fori=1To10 x=Int(Rnd*101+100) Printx Ifx>MaxThenMax=x Nexti Print Print“最大值=”;Max EndSub 注意: P84 rnd函数生成的随机数,是从[0,1),前闭后开,也就是说,可以取到0,但不能取到1 要是产生1-10的随机整数时: 不包括1和10: int(rnd*8)+2(即2—9之间的整数) 包括1和10时: int(rnd*10)+1(即1—10之间的整数) >排序(冒泡法) ---------------------------------------------------------------------------------------------------------------------- VB基本控件的应用和原理? caption,name,width,height,enable这些不用说了吧。 left,top: 当控件为窗体时,其值是相对于屏幕而言的;当控件为窗体内的控件时,其值是相对于窗体而言的。 (a)标签: alignment,autosize,borderstyle (b)文本框: passwordchar,scrollbars,text,selength,selstart,seltext 其事件: change,gotfocus,lostfocus,setfocus 其方法: setfocus (c)图形控件picture stretch: True表示图形要调整大小以与控件相适合。 False(缺省值)表示控件要调整大小以与图形相适。 图片框(pictrue)与图象框(image)的主要区别: 图片框能够作为“容器”控件,就是说图片框可以包含其他控件,而图象框则不行;图片框可以接受文本,二图象框则不可以。 装入图形文件语句: [对象.]picture=loadpicture("文件路径"),当文件路径为空时,即可删除图片框中的图形。 (d)按钮控件--caption cancel: 当此属性为true时,按esc键与单击该命令按钮的效果相同。 default: 当此属性为true时,按回车键与单击该命令按钮的效果相同。 (e)选择控件—复选和单选按钮 value: 单选按钮可设置为true和false,但多选按钮则是0——表示没选择该复选框,1——表示选中该按钮,2——表示该复选框被禁止。 (f)选择控件---文本框和列表筐 属性: list: 用来列出表项的内容,也可以用来改变数组中已有的值 listcount: 列除列表框中表项的数量,列表框中表项的排列从0开始,最后一项的序号为listcount-1 listindex: 该属性的设置值是已选中的表项的位置,表项位置由索引值指定,第一项的索引值为0。 selected: 可以检查指定的表项是否被选择列表框.selected(索引值) 可以选择指定的表项或已取消的表项列表框.selected(索引值)=true|false text: 为最后一次选中的表项的文本 事件: additem: 用来在列表框中插入一行文本 列表框.additem项目字符串[,索引值] removeitem: 用来删除列表框中指定的项目 列表框.removeitem索引值 组合框style属性: 0——下拉式组合框,可以输入,可识别dropdown事件 1——简单组合框,可以输入,可识别dblclick事件 2——下拉式列表框,不允许输入,可识别dropdown事件 (g)滚动条 属性: max,min: value值在两者之间变化 largechange:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB21 课程总结VB语法基础解析 课程 总结 VB 语法 基础 解析