首页 > 解决方案 > 表达式不是一种方法——冒泡排序

问题描述

我在 Visual Basic VB.NET 中编写经典冒泡排序并收到错误 BC30454 Expression is not a method。当我开始在第一个“For”中对插入的数字进行排序时,代码遇到了问题。我将 Sub 更改为 Public 并仔细检查了该方法是否输入正确,但似乎没有任何帮助。我错过了什么?

Sub EE14()
    Dim j As Long, p As Long, n As Long, i As Long, Pole(100) As Long
    Dim s As String
    n = 0
    Do
        i = Val(InputBox("Write a number:"))
        If i <> 0 Then
            n = n + 1
            Pole(n) = i
        End If
    Loop Until i = 0
    For j = 0 To (n - 1)
        For i = 0 To (n - 1)
            If Pole(i) > Pole(i + 1) Then
                p = Pole(i)
                Pole(i) = Pole(i + 1)
                Pole(i + 1)
                Pole(i + 1) = p
            End If
        Next
    Next
    For i = 0 To n
        s = s & vbCrLf & Str(Pole(i))
    Next
    MsgBox(s)
End Sub

标签: vb.netbubble-sort

解决方案


谢谢克里斯·阿克里奇,

我的错,通过移除 Pole(i + 1),没有问题。代码现在可以正常工作。

Sub EE14()
    Dim j As Long, p As Long, n As Long, i As Long, Pole(100) As Long
    Dim s As String
    n = 0
    Do                 
        i = Val(InputBox("Add Number:"))
        If i <> 0 Then
            n = n + 1
            Pole(n) = i
        End If
    Loop Until i = 0
    For j = 0 To (n - 1) 
        For i = 0 To (n - 1)
            If Pole(i) > Pole(i + 1) Then
                p = Pole(i)
                Pole(i) = Pole(i + 1)
                Pole(i + 1) = p
            End If
        Next
    Next
    For i = 0 To n
        s = s & vbCrLf & Str(Pole(i))
    Next
    MsgBox(s)
End Sub

推荐阅读