vb
个人日记
第5部分 VB控制结构
一、控制结构
顺序结构:按照书写顺序,先写先执行(不是指事件过程的执行先后)
选择结构:根据条件成立与否,决定语句是否执行
循环结构:根据条件,反复执行
二、顺序结构
Vb程序是由语句构成的
1、赋值语句
格式:变量名 = 表达式
对象名.属性名 = 表达式
例子:a%=1000
Form1.backcolor = vbred
请记住:算法1:交换算法
Private Sub Command1_Click()
Dim x%, y%, t%
x = InputBox("请输入一个数字")
y = InputBox("请输入一个数字")
Print x, y
t = x
x = y
y = t
Print x, y
End Sub
请记住:赋值语句要求左右类型一致!
当类型不一致时,左有类型以左为主,左无类型类型(variant)以右为主
例子:(隐式转换)
1)小数向整数:四舍六入
Dim a%
a = 4.5 --------a中是4
2)字符串和数字
Dim a%
a = “1234” -------a中1234
dim b$
b = 456 -------b中“456”
3)逻辑和数值
Dim a%,b%
a = true -------a中-1
b = false -------b中0
dim x as boolean,y as boolean
x = 100 -------x中true
y = 0 -------y中false
规律:true-----> -1 false ------->0 非0----->true 0----->false
例子:a = “abc” ------左无类型以右为主
2、注释语句(语句绿色,机器不执行)
‘:单独成行或者放在语句后面
Rem:单独成行
记住:做程序改错题时,将?更改为正确代码后,删除注释符
3、结束语句:end -------结束vb运行的程序
三、选择结构(单分支、双分支、多分支)
1、单分支
格式
单行:if <表达式> then <语句>
多行:if <表达式> then
<语句>
End if
功能:当表达式的值为true,执行语句
说明:<表达式>的形式
1) 关系表达式:if x>y then
2) 逻辑表达式:if x>y and x>z then
3) 数值表达式:if 2*3 then
例题:交换x和y中的值,保证x中的值永远大于y中。
Private Sub Command1_Click()
Dim x%, y%, t%
x = InputBox("请输入一个数字")
y = InputBox("请输入一个数字")
Print x, y
If x < y Then
t = x
x = y
y = t
End If
Print x, y
End Sub
2、双分支
格式:
单行:if <表达式> then <语句1> else <语句2>
多行:if <表达式> then
<语句1>
else
<语句2>
End if
功能:表达式的结果为true执行语句1,否则语句2
例题1:通过键盘输入2个数据,求最大值(算法2:求最值)
Private Sub Command1_Click()
x = Val(InputBox("请输入一个数据"))
y = Val(InputBox("请输入一个数据"))
If x > y Then
Print x
Else
Print y
End If
End Sub
Private Sub Command1_Click()
Dim x%, y%
x = InputBox("请输入一个数据")
y = InputBox("请输入一个数据")
If x > y Then
Print x
Else
Print y
End If
End Sub
例题2:通过键盘输入一个数字,判断奇偶性(算法3:判断奇偶性 mod)
Private Sub Command1_Click()
Dim x%
x = InputBox("请输入一个数据")
If x Mod 2 = 0 Then
Print x; "是偶数"
Else
Print x; "是奇数"
End If
End Sub
3、iif函数
格式:iif(表达式,表达式为true时的结果,表达式为false时的结果)
例子:使用iif求2个数中的最大值
Private Sub Command1_Click()
Dim x%, y%
x = InputBox("请输入一个数字")
y = InputBox("请输入一个数字")
Print IIf(x > y, x, y)
End Sub
4、多分支结构
1)块结构
格式:if <表达式1> then
<语句1>
Elseif <表达式2> then
<语句2>
……
Else
<语句n>
End if
功能:执行第一个成立表达式所对应的语句,程序跳到end if之后
注意:elseif一个词;else谨慎使用;
例子1:
y = 3x-1(x<0)
2x (0≤x<5)
4x+5(x>5)
Private Sub Command1_Click()
Dim x%, y%
x = InputBox("请输入一个数据")
If x < 0 Then
y = 3 * x - 1
ElseIf x < 5 Then
y = 2 * x
ElseIf x > 5 Then
y = 4 * x + 5
End If
Print y
End Sub
例子2:五级分制转换
Private Sub Command1_Click()
Dim a%
a = InputBox("请输入一个数字")
If a >= 80 Then
Print "良好"
ElseIf a >= 90 Then
Print "优"
ElseIf a >= 70 Then
Print "中"
ElseIf a >= 60 Then
Print "及格"
Else
Print "不及格"
End If
End Sub
2)情况语句
格式:select case <测试内容>
Case <表达式1>
<语句1>
Case <表达式2>
<语句2>
……
Case else
<语句n>
End select
功能:执行第一个和测试内容匹配成功的表达式所对应的语句!!
说明:case后面的<表达式>
ü 枚举型:case 1,3,5
ü To型:case 10 to 20 -----[10,20]
ü Is型:case is>30 -----注意:is和关系运算符一起使用,但是不能和逻辑运算符一起!!
ü 混用型:case 2,4,20 to 30,is>50
例题:五级分制转换(select case)
Private Sub Command1_Click()
Dim a%
a = InputBox("请输入一个数字")
Select Case a
Case Is >= 90
Print "优"
Case 80 To 90
Print "良"
Case Is >= 70
Print "中"
Case Is >= 60
Print "及格"
Case Else
Print "不及格"
End Select
End Sub
5、选择嵌套
格式:给定选择结构中,<语句>可以由新的选择结构代替!!
经典例题:通过键盘输入一个字符,判断它是大写字母、小写字母、数字符号、其他符号。
Private Sub Command1_Click()
a = InputBox("请输入一个字符")
If a >= "A" And a <= "Z" Then
Print "该字母是大写字母!"
ElseIf a >= "a" And a <= "z" Then
Print "该字母是小写字母!"
ElseIf a >= "0" And a <= "9" Then
Print "该字符是数字!"
Else
Print "这是一个其他字符!"
End If
End Sub
四、常用控件
1、计时器(时钟控件):timer1
属性:
Interval:时间间隔,单位ms(1s=1000ms)-----时间间隔为0,时钟控件不起作用
Enabled:true:可用;false:不可用
事件:timer:每隔设定好的时间间隔发生一次(前提:interval不为0;enabled为true)-------只有一个事件
注意:运行时不可见;计时器不能改变大小
2、单选按钮:option1
功能:多选一(同一时刻只能选择一个)
属性:
Caption:显示信息
Alignment:0:按钮在左文字在右;1:按钮在右文字在左
Value:true:选中(有个小黑点);false:没有选中
事件:click、dblclick
3、复选框:check1
功能:多选
属性:
Caption、alignment:同单选按钮
Value:0:没有选中;1:选中(有个√);2:灰色禁用
事件:click(没有dblclick)
4、框架:frame1
属性:
Caption:显示信息
Visible:true:可见
Enabled:true:可用
功能:1)容器控件(同步消失或者不可用)
2)单选按钮的分组工具:组内互斥,组间无影响
5、滚动条:hscroll1、vscroll1
属性:
Value:设置或者返回小滑块的位置
Min:设置小滑块的最小值
Max:设置小滑块的最大值
SmallChange:最小偏移量(点击箭头)
LargeChange:最大偏移量(点击滑块左右空白)
方法:move
事件:
Change:当value该变
Scroll:拖动小滑块(在拖动过程中发生)
6、直线:line1
功能:在窗体上显示一条直线
属性:
x1,y1,x2,y2:确定直线位置(先画点为x1,y1点)
borderstyle:线条类型(0~6)
borderwidth:线宽(默认值1时,线型可见)
事件、方法:无
7、形状:shape1
功能:在窗体显示6中形状
属性:
Shape:决定形状(0~5)
Fillstyle:内部填充效果(0~7)
Fillcolor:填充颜色
方法:move
事件:无
8、图像框:image1
属性:
Picture:为图像框设置图片
Stretch:true:图片调整大小适应图像框-------图片变
False:图像框调整大小适应图片----控件变
方法:move
事件:click、dblclick
9、图片框:picture1
功能:加载图片显示;容器控件
属性:
Picture:为图片框设置图片
Autosize:true:控件改变适应图片
False:都不变(超出控件部分不见)
方法:print、cls、move
事件:click、dblclick
请记住:图像框和图片框利用代码处理图片的方法
加载:image1.picture = loadpicture(“图片名.扩展名”)
picture1.picture = loadpicture(“图片名.扩展名”)
清除:
image1.picture = loadpicture(“”)
picture1.picture = loadpicture(“”)
10、焦点和tab顺序
焦点对象:当前的可操作对象
注意:
1) 框架、标签、图像框、菜单、直线、形状以及时钟控件不能接受焦点
2) <
文章评论
づ浑浑噩噩の小生活
,,,,