帮忙分析一下这个VB排序程序

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:01:25
Dim a(1 To 10) As String: Dim b(1 To 10) As Integer : Dim s As Integer
a(1) = "张三": a(2) = "李四": a(3) = "王五": a(4) = "赵六": a(5) = "钱七"
a(6) = "孙八": a(7) = "陈九": a(8) = "程十": a(9) = "卫一": a(10) = "阳一"
b(1) = 67: b(2) = 76: b(3) = 78: b(4) = 88: b(5) = 83
b(6) = 57: b(7) = 66: b(8) = 92: b(9) = 81: b(10) = 59

'成绩排序:Text5文本框输出排序结果
Private Sub Command1_Click()
For i = 1 To 10
For j = i To 10
If b(i) < b(j) Then
k1 = a(i): a(i) = a(j): a(j) = k1
k2 = b(i): b(i) = b(j): b(j) = k2
End If
Next j
Next i
For i = 1 To 10
Text5.Text = Text5.Text + a(i) + CStr(b(i)) + Space(4)
Next i
End sub

谁能帮我分析一下这两行是什么意思?
k1 = a(i): a(i) = a(j): a(j) = k1
k2 = b(i): b(i) = b(j): b(j) = k2

k1和k2都是用来中转的一个变量
k1 = a(i): a(i) = a(j): a(j) = k1 这一句,
把a(i)和a(j)对换了位置
下一句,是一样的作用,把b(i)和b(j)对换了位置
起到排序的作用

比如这样,当i=2,j=3,,,,b(2)=60 ,b(3)=80,时,
执行,k2 = b(i): b(i) = b(j): b(j) = k2
就是:k2=60,,b(i)=80,b(j)=70
这样就完成了一次对换位置
结果成了 b(2)=80,b(3)=70

a(i)和a(j) 交换顺序
b(i)和b(j) 交换顺序

就是把a(i)的值和 a(j)的值交换咯

b(i) b(j)同理交换