一.函数的参数传值与传址的区别(byval常量或表达式,不影响实参和byref变量或数组,影响实参)
参数传值:byval传值实参——临时单元——形参
例:Private sub Command1_Click()
Dim x As Integer
X=6
Print “调用Sub过程前x=”; x
Call Test(x)
Print”调用Sub过程后x=”; x
End Sub
Sub Test(Byval m As Integer)
m=m+5
End Sub 结果仍是x=6
此例子对形参m的操作不会影响到实参x,x赋值时是多少,经过参数传值运算仍然是什么,不改变。
参数传址:Byref传址实参——形参
例:Private sub Command1_Click()
Dim x As Integer
X=6
Print “调用Sub过程前x=”; x
Call Test(x)
Print”调用Sub过程后x=”; x
End Sub
Sub Test(Byref m As Integer)
m=m+5
End Sub 结果是x=11
此例子对形参m的操作会影响到实参x,x经过传址过程,x会改变。
二.三大控制结构(顺序结构 选择结构 循环结构)
顺序结构:按照语句的书写顺序执行的结构,即谁在前面就先执行谁,早死早脱生的感觉。1.赋值语句Let,一般可省略,x=y和y=x是不一样的。
例:Private Sub Command1_Click()
Dim x As Integer
Dim y As String
y=”100.23”
x=y
y=y+20
Text1.Text=x
Text2.Text=y
End Sub 结果是x=100,y=100.23
2.输出(Print)使用格式:对象名称 Print 表达式列表 ;|,
例:Print “3*4=”;3*4 这里输出结果空格少3*4=12
或者Print “3*4=”,3*4 这里输出结果空格多3*4= 12
1. 用标签输出(Label),画出标签,然后敲写代码即可。
2. 使用信息框函数(MsgBox)变量名=MsgBox(提示信息,对话框类型,对话框标题)
例:X=MsgBox(”确实要退出吗”,4+32+256,”关闭窗口”)
输入(TextBox)这个与Label类似
输入框函数(InputBox)变量名=InputBox(提示内容,对话框标题,默认值)
选择结构:能够根据不同的情况作出不同的选择,执行不同的操作。
1. 单行条件语句:If 条件 Then 语句块1 Else 语句块2(可省略) 此条语句含义为如果条件成立则执行语句块1,否则执行语句块2
2. 块结构条件语句:将单行条件语句从语句块1开始换行即可。
即:If 条件 Then
语句块1
Else
语句块2
End If
执行条件同单行条件语句。
3. Select Case语句:形式:Select Case 测试表达式
Case表达式列表1
语句块1
Case表达式列表2
语句块2
……
End Select
执行步骤:先对测试表达式进行求值,然后按顺序测试该值与哪个Case子句中的表达式列表相等,找到了先进性Case分之后的语句块,然后执行End Select,找不到,则执行End Select后面的语句。
循环结构:需要对某程序语句中的某些语句进行重复执行多次的结构。
1. Do…Loop语句:先判断条件格式:Do While|Until条件
循环体
Loop
Do While…Loop是当形循环。即:条件满足执行循环,否则不执行循环。
Do Until…Loop是直到形循环。即;条件为假时执行循环,直到条件为真,终止循环。
并且可以省略While|Until。
后判断条件格式:Do
循环体
Loop While|Until条件
2.For…Next语句:格式;For 循环变量=初值 To 终值 Step n
循环体
Next循环变量
例:求自然数1-100之间奇数的和
Private Sub Form_Load()
Dim I As Integer, s As Integer
Show
For I=1 To 100 Step 2
S=s+i
Next i
Print”1-100奇数累加和为:”;s
End Sub
另外,可以在里面嵌套多个For…Next循环。
三.什么是变量(在程序等运行过程中,其值可以改变的量1自定义变量即内存变量,2属性变量)
1.全局变量(应用程序级变量):需要在模块的通用声明段中定义,使用Public关键字,即:Public 变量名 As 数据类型。
2.局部变量(过程及变量):在过程中的热河位置都可以声明,只能在这一过程中使用。
形式:Dim|Static 变量名 As 数据类型(Dim声明的值当过程执行完毕变量的值就不存在了,而static声明的值只有程序结束后变量才不存在,否则变量将一直保存。)
如:Dim intNum1 As Integer或者Static strName As String
3.模块级变量:所在模块中所有过程都可以访问的变量。(窗体和窗体之间不能互相访问)
Private|Dim 变量名 As 数据类型(为了与局部变量区别一般都用Private)