vb高手请进,帮我看看

来源:百度知道 编辑:UC知道 时间:2024/05/05 01:58:10
我编程的时候发现的,请帮我看看,谢谢。为了简明扼要,我把有问题的部分当成一个程序代码单独提取出来。
-----------------------------------------------------------------
Public a, b, x As Integer

Private Sub Command1_Click()
a = InputBox("请输入A", "数据输入框", 5)
b = InputBox("请输入B", "数据输入框", 5)
If a > b Then
x = a - b
ElseIf a < b Then
x = b - a
End If
Print x
End Sub
-----------------------------------------------------------------现在的问题是我在A输入5,B输入20就会打印-15出来。不是应该打印5吗?而且只有个位数才出问题,为什么会这样,好奇怪啊。请高手指点,谢谢!QQ:87607130
哦,对了。如果A输入大于10是正常的,太奇怪了。

将a,b的输入语句改为:
a = Val(InputBox("请输入A", "数据输入框", 5))
b = Val(InputBox("请输入B", "数据输入框", 5))

inputbox返回的是字符串,如果不加val(),会是字符串的比较.

本是第一个回答的,为近一步说明我的观点,还要作以下补充:
(1)dim a,b,x as integer相当于:
dim a,b
dim x as integer
所以a,b并未定义为整形.
(2).vb是弱类型的语言,以下这样的句子在运行时,vb都不报错,且结果还正确!!!
Dim a As String
Dim x As Integer
a = 15
x = "2"
Print a + 1
Print x - 1

学习的

楼上说的不对,既然前面已经PUBLIC a b x为INTEGER了,那么就不是字符型的比较了...

但如果按楼上的做结果却是正确的..

我再考虑一下再给你答复

如果你在定义的时候把A和B 都定义成integer 那应该就没问题了!~

声明不对,VB中不能这样声明
要这样:
Public a As Integer, b As Integer, x As Integer