vb中1+1变成了11
--------------------编程问答-------------------- Dim a, d, s As Integer 这样定义只有s是整型变量,a和d是变体型了定义变量的时候再加一个n就好
可是定义变量应该
Dim a as integer, d as integer, s As Integer,n as integer
要养成好习惯哦 --------------------编程问答-------------------- 本人也是新手,但是看到好像没错额, --------------------编程问答-------------------- 循环五次,如果你a里面输入的是1. 那么S+a也就是等于1,第二个也是输入1,那么a(1)+b(1) 就等于二,以此类推 --------------------编程问答--------------------
Dim a, d, s As Integer
你貌似定义了3个整形变量, 实际只有最后一个s是整形变量, 前面的a和d都是无类型的变体变量.
也就是说a和d可以是任意数据类型的. 所以在你程序中被当作字符串类型来对待.
既然是字符串类型么, 1+1当然就成了11 --------------------编程问答-------------------- Dim a as integer, d as integer, s As Integer,n as integer --------------------编程问答-------------------- --------------------编程问答-------------------- cint转换一下! --------------------编程问答-------------------- a="1"
b="3"
val(a)+val(b) --------------------编程问答-------------------- +对数字类型变量是变量的数值相加,1+1=2
对字符串变量是简单的字符串连接,"1"+"1"="11"
s = s + a
s是integer,vb会转化variant类型的a为integer,然后+
a = a + d
a是variant,并且input返回的是string类型,a是string类型,所以这个是string+string --------------------编程问答-------------------- --------------------编程问答-------------------- dim a%.d%,s% --------------------编程问答--------------------
这个就是正解。其实VB的“+”除了有数学上加法的意思,还有连接字符串的意思,例如你这样写
a="1" + "2"
出来的结果是12,跟你的情况一样了 --------------------编程问答-------------------- 看来是从C语言转过来的变量声明法......
解决办法上面的兄弟们都说了.
不过,我补充个好习惯:把连接字符串的运算符与算术"相加"的运算符分开.
实际上,在VB6里这两种操作本身就有两种不同的运算符,分别为&与+.
只不过,+还兼有字符串连接运算符&的功能,会在运算双方均为字符串变量的情况下对变量进行字符串连接.
为了明确地进行字符串连接,建议仅使用&,虽然在正确地声明变量类型的前提下,使用+也能进行字符串连接,但最好还是别那样费脑筋吧. --------------------编程问答-------------------- 字符串加的话就是连接
补充:VB , 基础类