注册 登录
编程论坛 VB6论坛

我是初学着,而且是自学的,现在有个问题请教下啊,里面的i值是什么啊?

wangkaicosl 发布于 2015-01-15 16:23, 1265 次点击
Public Class Form1
    Dim i0, i1, i2, i3, x As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load

        x = 400
        i1 = Val(TextBox1.Text)
        i2 = Val(TextBox2.Text)
        i3 = Val(TextBox3.Text)
        i0 = i1 + i2 + i3 + i2
        Timer1.Interval = 100
    End Sub

    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Static i As Integer, dx%
        Dim k%
        i = i + 1
        If i <= i1 * 10 Then
            PictureBox4.Image = PictureBox1.Image
            k = 1
        ElseIf i <= (i1 + i2) * 10 Then
            PictureBox4.Image = PictureBox2.Image


            k = 2
        ElseIf i <= (i1 + i2 + i3) * 10 Then
            PictureBox4.Image = PictureBox3.Image
            k = 3
        ElseIf i <= i0 * 10 Then
            PictureBox4.Image = PictureBox2.Image
            k = 2
            If i = i0 * 10 Then i = 0

        End If
        If k = 3 Then
            If dx < 4 Then dx = dx + 1
        Else
            If x > 130 Or x < 100 Then
                dx = 4
            ElseIf x > 120 Then
                dx = 3
            ElseIf x > 110 Then
                dx = 2
            ElseIf x > 100 Then
                dx = 1
            Else
                dx = 0
            End If
        End If
        x = x - dx
        If x <= -100 Then x = 400
        PictureBox5.Left = x
    End Sub
End Class
12 回复
#2
chen35232015-01-15 22:52
i As Integer ’长整型
#3
a5350804592015-01-16 08:34
i的类型为长整数型,这里作为判断参数,i=i+1即 每次循环 i的值都会加1,这里的“+”是运算方式,但是“=”不是等于的意思,是赋值的意思,在数学公式里“i=i+1”是不成立的,但在编程里把它理解成:把i+1的值赋值给了新的i,举例:起始i=0,运行一次则 i=0+1  这时候i=1,循环一次 :i=1+1 这时候i=2,依次类推,希望你能明白我的意思!
#4
wmf20142015-01-16 08:44
楼主那么长的代码我看不懂,但变量类型还是百度的到的。
vb里integer是整形数,16位,long是长整形数,32位。c里int长度可能随系统不同有不同长度,一般为32位,可用sizeof获取。
#5
lianyicq2015-01-16 09:13
这是VB6代码?象是
i相当于一个计数值,每一个timer1_tick事件,i加1.
#6
gcb122015-01-17 13:51
#7
sj4766067292015-01-17 22:47
dim 为动态定义变量例如
    command1_click......
        dim i as integer   
        i=i+1
        print i
    end sub       '每次单击初始值是0,打印的值都是1,
    如果用static 定义的话,每次单击i的值是在原来结束的值上再加1,打印的是上次结束后加1的结果,属于静态  定义变量,都为整型,  you know?
#8
VB丶小宇2015-01-18 09:58
对于1.2楼的答案,一定要仔细甄别。
可以肯定的说1.2的答案"i的类型为长整型",这一说法是绝对的错误。
我查Visual Basic从入门到精通(清华大学出版社)明日科技编著。里面的基本数据类型介绍:
Integer为整数型,其声明符为:%,而并非是长整型。
Long才是长整型。其声明符为:&
#9
tlliqi2015-01-18 10:03
要认真研究
#10
骑骡子追妹子2015-01-23 18:18
i 长整型
#11
柔儿梦婷2015-01-25 18:57
以下是引用wangkaicosl在2015-1-15 16:23:26的发言:

Public Class Form1
    Dim i0, i1, i2, i3, x As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load

        x = 400
        i1 = Val(TextBox1.Text)
        i2 = Val(TextBox2.Text)
        i3 = Val(TextBox3.Text)
        i0 = i1 + i2 + i3 + i2
        Timer1.Interval = 100
    End Sub

    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Static i As Integer, dx%
        Dim k%
        i = i + 1
        If i <= i1 * 10 Then
            PictureBox4.Image = PictureBox1.Image
            k = 1
        ElseIf i <= (i1 + i2) * 10 Then
            PictureBox4.Image = PictureBox2.Image


            k = 2
        ElseIf i <= (i1 + i2 + i3) * 10 Then
            PictureBox4.Image = PictureBox3.Image
            k = 3
        ElseIf i <= i0 * 10 Then
            PictureBox4.Image = PictureBox2.Image
            k = 2
            If i = i0 * 10 Then i = 0

        End If
        If k = 3 Then
            If dx < 4 Then dx = dx + 1
        Else
            If x > 130 Or x < 100 Then
                dx = 4
            ElseIf x > 120 Then
                dx = 3
            ElseIf x > 110 Then
                dx = 2
            ElseIf x > 100 Then
                dx = 1
            Else
                dx = 0
            End If
        End If
        x = x - dx
        If x <= -100 Then x = 400
        PictureBox5.Left = x
    End Sub
End Class

说白点就是你买了苹果你要告诉计算机它是苹果,然后开始买了三个个苹果,后来买五苹果那一起就8个苹果就这意思 Dim i0, i1, i2, i3, x As Integer
Private Sub Command1_Click()
i1 = 3
i2 = 5
Print "i1 + i2=8"
End Sub
#12
renxiaoyao362015-02-01 22:28
Dim i0, i1, i2, i3, x As Integer我很好奇这句代码是干嘛的?看样子楼主的本意是要把五个变量都声明为整型变量,但是这样声明的话只有x是整型变量,其他都是自变量。
#13
andy12342015-02-10 22:39
i是time的步长值,i AS integer 整形数值。
1