VB转换函数与程序调试
行政班:        教学班:        姓名:        学号:       
一、VB中的转换函数
Val:将数字字符串转换为数值,Val("13")值为13  Str将数值转为为字符串Str(13)值为"13"
①字符串和数值:"123"  和 123 ,带双引号的"123"是字符串,在计算机中存储时,存储的是每个字符的对应的内码;而123是数值,表示大小,在计算机中直接存储其数值。
②VB数据类型  Integer、Long、Single、Double都是数值类型,String为字符类型。
③在VB程序中 对象的CaptionText的属性值都属于字符串类型,列表框List上添加内容的也是字符串型。
④赋值语句的两种形式:变量名=表达式对象名.属性名=表达式。根据赋值等号两边数据类型,来确定右边是否要转换数值型 = Val(字符串型) 字符串型 = Str(数值型)
右边的数据类型和左边的类型不一致,则需要将右边的转换成和左边一致在,再赋值。
   
⑤在下面划线填上ValStr、留空(若不需要转换不用填)
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
a =    (Text1.Text)
b =     (a * 2)
Text2.Text =    (b)
End Sub
Private Sub Command1_Click()
Dim a As String
Dim b As Integer
a =     (Text1.Text)
b =     (a)
b =     (b ^ 2)
Text2.Text =     (b)
End Sub
Private Sub Command1_Click()
Dim a As Integer
Dim b As String
a =     (Text1.Text)
b =     (a)
b =    ( b +"10")
Label1.Cation =     (b)
End Sub
Private Sub Command1_Click()
Dim a As String
Dim b As Integer
a = vb 字符串转数组    (Text1.Text)
b =    ( Len(a) )
List1.AddItem "长度为" +     (b)
Label1.Caption =     (a)
End Sub
二、赋值语句和关系表达式
①关系表达式:判断左右两边数据的大小关系。赋值语句:将右边的结果传输给左边。
②关系表达式中的“判断相等”容易和赋值语句混淆。记住:IFDo While后面的等号是关系表达式,例如IF a=5 Then IF 5= a Then 是等价的,因为这里的等号表示判断,而不是赋值。
③下列语句肯定不能作为赋值语句的是(   
A. x = y    B. x+y = x    C. Text1.Text = "结果"+Str(a)    D. a = True
程序调试错误总结:
 
这两种错误,检查代码代码中IF和EndIF、For和Next、Do和Loop有没有配对。
错误一:要求对象
原因:程序代码中的对象名在窗体上面并存在。
例如:代码中有Text2.Text=“桐乡”,而窗体上面并没有Text2对象,就会出现此类错误。
错误二:溢出
原因:数据的大小超出变量所能存储的范围。
例如:
Dim a As Integer
a = 10 ^ 10
就会出现此类错误。因为Integer整数类型变量a范围为正负3万左右。
错误三:类型不匹配
原因:不同类型的数据进行运算。
Dim a As Integer
a = 2016
Label1.Caption = "桐乡" + a
就会出现此类错误
因为变量a为数值型,不能和字符"桐乡"直接相加。
如果Val(a)也会出现此类错误。因为Val参数的是字符型变量,a是数值型
错误四】:未到方法或数据成员
原因:对象中没有这个属性或方法
Label1.Text = "桐乡"
就会出现此类错误
因为标签Label中没有Text属性成员。
错误五】:子程序或函数未定义
原因:函数名弄错
Dim a As Integer
a = Abc(-10)
就会出现此类错误。绝对值函数Abs错写成Abc,而Abc函数是未定义的。
错误六】:无效的过程调用或参数
原因:参数无效
Dim a As Integer
a = Sqr(-10)
就会出现此类错误。因为Sqr开根号,其参数不能为负数。
错误七】:下标越界
Dim a(1 To 10) As Integer
For i = 1 To 10
  a(i) = i
Next i
Label1.Caption = Str(a(i))
就会出现此类错误。因为循环结束是i的值为11,Label1.Caption = Str(a(i))中就是a(11),导致越界

程序调试错误总结:
 
这两种错误,检查代码代码中IF和EndIF、For和Next、Do和Loop有没有配对。
有时候缺少Endif,也会报错为 For没有Next
例如:
Dim a As Integer
For a = 1 To 100
  If a Mod 2 = 0 Then
      List1.AddItem Str(a)
            '①
Next a
运行之后 报错为: For没有Next

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。