VB转换函数与程序调试
行政班: 教学班: 姓名: 学号:
一、VB中的转换函数
Val:将数字字符串转换为数值,Val("13")值为13 Str将数值转为为字符串Str(13)值为"13"
①字符串和数值:"123" 和 123 ,带双引号的"123"是字符串,在计算机中存储时,存储的是每个字符的对应的内码;而123是数值,表示大小,在计算机中直接存储其数值。
②VB数据类型 Integer、Long、Single、Double都是数值类型,String为字符类型。
③在VB程序中 对象的Caption、Text的属性值都属于字符串类型,列表框List上添加内容的也是字符串型。
④赋值语句的两种形式:变量名=表达式 或 对象名.属性名=表达式。根据赋值等号两边数据类型,来确定右边是否要转换。数值型 = Val(字符串型), 字符串型 = Str(数值型)
右边的数据类型和左边的类型不一致,则需要将右边的转换成和左边一致在,再赋值。
⑤在下面划线填上Val、Str、留空(若不需要转换不用填)
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 |
二、赋值语句和关系表达式
①关系表达式:判断左右两边数据的大小关系。赋值语句:将右边的结果传输给左边。
②关系表达式中的“判断相等”容易和赋值语句混淆。记住:IF和Do 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小时内删除。
发表评论