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           -------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中。

       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

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

       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 135

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

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

ü         混用型:case 2420 to 30is>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:时间间隔,单位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)  <

文章评论