当前位置:编程学习 > VB >>

求VB大神帮忙

Dim a(5, 5) As Integer Private Sub Command1_Click() Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 5 a(i, j) = Int(90 * Rnd) + 10 Picture1.Print a(i, j); Next j Picture1.Print Next i End Sub Private Sub Command2_Click() Dim max As Integer Dim i As Integer Dim j As Integer max = a(1, 1) For i = 1 To 5 For j = 1 To 5 If a(i, j) > max Then max = a(i, j) Next j Next i(这边为什么会弹出next没有for???) End If Text1.Text = "最大数为" & max & ",他的位置是" End Sub Private Sub Command3_Click() Picture1.Cls Text1.Text = "" End Sub Private Sub Command4_Click() Unload Me End Sub
答案:出现错误的原因是:因为你的For...Next嵌套出错。在第二个For循环(即For j=1 to 5 ....Next j )中,有一个if...then语句,而你用的if语句是一个语句块的形式,它后面要有一个 End if 作结束。在你的这个语句块(If .... End if 之间部分) 中包含有两个Next 语句,这样前面的For循环不能配对了。所以有一个“Next 没有For”的错误了。正确的语句是:
Private Sub Command2_Click()
    Dim max As Integer
    Dim i As Integer
    Dim j As Integer
    max = a(1, 1)
        For i = 1 To 5
            For j = 1 To 5
                If a(i, j) > max Then
                    max = a(i, j)
                End If
            Next j
        Next i          
    Text1.Text = "最大数为" & max & ",他的位置是"
End Sub
其他:for 
next  
就是 vb for  循环的 结构 Private Sub Command2_Click()'Command2_Click改成下面的语句
    Dim max As Integer
    Dim i As Integer
    Dim j As Integer
    max = a(1, 1)
        For i = 1 To 5
            For j = 1 To 5
            If a(i, j) > max Then
                max = a(i, j)
            End If
            Next j
        Next i
          
            Text1.Text = "最大数为" & max & ",他的位置是"
End Sub 程序功能不完整,稍作修改如下:
 Dim a(5, 5) As Integer
Private Sub Command1_Click()
    Dim i As Integer
    Dim j As Integer
        Randomize
        For i = 1 To 5
            For j = 1 To 5
                a(i, j) = Int(90 * Rnd) + 10
                Picture1.Print a(i, j);
           Next j
        Picture1.Print
        Next i
End Sub

Private Sub Command2_Click()
    Dim max As Integer
    Dim wzi As Integer
    Dim wzj As Integer
    Dim i As Integer
    Dim j As Integer
    max = a(1, 1)
        For i = 1 To 5
            For j = 1 To 5
            If a(i, j) > max Then
                max = a(i, j)
                wzi = i
                wzj = j
            End If
            Next j
        Next i
    Text1.Text = "最大数为" & max & ",他的位置是第" & wzi & "行第" & wzj & "列"
End Sub

Private Sub Command3_Click()
    Picture1.Cls
    Text1.Text = ""
End Sub

Private Sub Command4_Click()
    Unload Me
End Sub For i = 1 To 5
            For j = 1 To 5
            If a(i, j) > max Then
                max = a(i, j)
            Next j
        Next i(这边为什么会弹出next没有for???)
因为你有if,却没有end if 应为
        For i = 1 To 5
            For j = 1 To 5
            If a(i, j) > max Then
                max = a(i, j)
            end if
            Next j
        Next i 

上一个:vb中用ado控件修改数据库记录的问题
下一个:我用VB写了个程序,想30分钟的时候LABLE1.显示一个东西1小时的时候又显示一个东西如此循环.

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,