vb

个人日记

 5部分VB控制结构

一、控制结构

顺序结构:按照书写顺序,先写先执行(不是指事件过程的执行先后)

选择结构:根据条件成立与否,决定语句是否执行

循环结构:根据条件,反复执行

 

二、顺序结构

Vb程序是由语句构成的

1、赋值语句

格式:变量名 = 表达式

     对象名.属性名 = 表达式

例子:a%=1000

         Form1.backcolor = vbred

请记住:算法1:交换算法

       PrivateSub 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           -------a1234

        dim b$

         b= 456                            -------b中“456

       3)逻辑和数值

      Dim a%b%

      a = true                            -------a-1

      b = false                          -------b0

     dim x as booleany as boolean

     x = 100                            -------xtrue

     y = 0                               -------yfalse

     规律: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

例题:交换xy中的值,保证x中的值永远大于y中。

       PrivateSub 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

3iif函数

格式:iif(表达式,表达式为true时的结果,表达式为false时的结果)

例子:使用iif2个数中的最大值

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-1x<0

    2x  0x<5

4x+5x>5

       PrivateSub 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>

                     ……

              Caseelse

                     <语句n>

       End select

功能:执行第一个和测试内容匹配成功的表达式所对应的语句!!

说明:case后面的<表达式>

ü        枚举型:case 135

ü        To型:case 10 to 20  -----[1020]

ü        Is型:case is>30     -----注意:is和关系运算符一起使用,但是不能和逻辑运算符一起!!

ü        混用型:case 2420 to 30is>50

例题:五级分制转换(selectcase

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:时间间隔,单位ms1s=1000ms-----时间间隔为0,时钟控件不起作用

Enabledtrue:可用;false:不可用

事件:timer:每隔设定好的时间间隔发生一次(前提:interval不为0enabledtrue-------只有一个事件

注意:运行时不可见;计时器不能改变大小

2、单选按钮:option1

功能:多选一(同一时刻只能选择一个)

属性:

       Caption:显示信息

       Alignment0:按钮在左文字在右;1:按钮在右文字在左

       Valuetrue:选中(有个小黑点);false:没有选中

事件:clickdblclick

 

3、复选框:check1

功能:多选

属性:

       Captionalignment:同单选按钮

       Value0:没有选中;1:选中(有个√);2:灰色禁用

事件:click(没有dblclick

 

4、框架:frame1

属性:

       Caption:显示信息

       Visibletrue:可见

       Enabledtrue:可用

功能:1)容器控件(同步消失或者不可用)

         2)单选按钮的分组工具:组内互斥,组间无影响

 

5、滚动条:hscroll1vscroll1

属性:

       Value:设置或者返回小滑块的位置

       Min:设置小滑块的最小值

       Max:设置小滑块的最大值

       SmallChange:最小偏移量(点击箭头)

       LargeChange:最大偏移量(点击滑块左右空白)

方法:move

事件:

Change:当value该变

Scroll:拖动小滑块(在拖动过程中发生)

 

6、直线:line1

功能:在窗体上显示一条直线

属性:

       x1y1x2y2:确定直线位置(先画点为x1y1点)

       borderstyle:线条类型(0~6

       borderwidth:线宽(默认值1时,线型可见)

事件、方法:无


7、形状:shape1

功能:在窗体显示6中形状

属性:

       Shape:决定形状(0~5

       Fillstyle:内部填充效果(0~7

       Fillcolor:填充颜色

方法:move

事件:无

 

8、图像框:image1

属性:

       Picture:为图像框设置图片

       Stretchtrue:图片调整大小适应图像框-------图片变

                     False:图像框调整大小适应图片----控件变

方法:move

事件:clickdblclick

 

9、图片框:picture1

功能:加载图片显示;容器控件

属性:

       Picture:为图片框设置图片

       Autosizetrue:控件改变适应图片

                      False:都不变(超出控件部分不见)

方法:printclsmove

事件:clickdblclick

 

请记住:图像框和图片框利用代码处理图片的方法

       加载:image1.picture = loadpicture(“图片名.扩展名”)

                picture1.picture = loadpicture(“图片名.扩展名”)

       清除:

                image1.picture = loadpicture(“”)

                picture1.picture = loadpicture(“”)

 

10、焦点和tab顺序

焦点对象:当前的可操作对象

注意:

1) 框架、标签、图像框、菜单、直线、形状以及时钟控件不能接受焦点

2) 程序运行时,按tab键使焦点按照控件的tabindex属性的顺序在控件间移动

3) Tabstopfalse,不能接受焦点


五、循环结构(fordowhile--------重复的、有规律的执行

记住:ctrl + break

1for循环

格式:

       For循环变量 = 初值 to 终值 step 步长

              循环语句

              [Exitfor]

Next

功能:按照循环变量的初值、终值以及步长确定的次数执行循环

执行流程:

        SHAPE \* MERGEFORMAT

取初值

比较

执行循环

符合条件

执行next后的语句

不符合条件

next循环变量加步长

本地图片,请重新上传

如何比较:

1) 步长>0循环变量<=终值,执行循环-----------  观察:前小后大

2) 步长<0循环变量>=终值,执行循环-----------  观察:前大后小

3) 步长=0:死循环

 

基础例题:

1、 在窗体上输出数字1-102-10之间的偶数

2、 1+2+3+……+10的和(算法4:累加求和

Private SubCommand1_Click()

s = 0

For i = 1 To 10Step 1

    s = s + i

Next

Print s

End Sub

3、 1*2*3*4*5的结果(算法5:累乘

Private Sub Command1_Click()

s = 1

For i = 1 To 5 Step 1

    s = s * i

Next

Print s

End Sub

 

请记住:

1)  循环变量必取初值

2)  循环次数的计算:int((终值-初值)/步长)+1

3)  循环结束后,循环变量的值???

ü        循环正常结束:步长>0:循环变量>终止;步长<0:循环变量<终止

ü        循环不成立时:循环变量的值为初值

ü        循环强退时:循环变量的值等于当次值

 

文章评论