关于VB中最大最小值在combo中转化的问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:29:32
min = 0
For i = 1 To Combo1.ListCount - 1
If Val(Combo1.List(i)) < Val(Combo1.List(min)) Then min = i
Next
x = Combo1.List(0)
Combo1.List(0) = Combo1.List(min)
Combo1.List(min) = x
max = Combo1.ListCount - 1
For i = 0 To Combo1.ListCount - 2
If Val(Combo1.List(i)) > Val(Combo1.List(max)) Then max = i
Next
x = Combo1.List(Combo1.ListCount - 1)
Combo1.List(Combo1.ListCount - 1) = Combo1.List(max)
Combo1.List(max) = x

解释下 For i = 1 To Combo1.ListCount - 1 为什么是从1开始?不是0?
max = Combo1.ListCount - 1 这个什么意思
For i = 0 To Combo1.ListCount - 2 为什么是-2?

For i = 1 To Combo1.ListCount - 1 为什么是从1开始?不是0?
因为前面假设最小值下标为0即min = 0,所以从1开始依次比较即可。

max = Combo1.ListCount - 1 这个什么意思
假设最大值下标为combo1最后一项

For i = 0 To Combo1.ListCount - 2 为什么是-2?
正因为假设Combo1.ListCount - 1为最大项下标,所以比较时只要到Combo1.ListCount - 2即可,你也可以到Combo1.ListCount - 1,相当于自己和自己比较。

从1开始是因为下面一句用了List(min),这就是0这一项.

ListCount-2是因为下面一句用到了List(max),这一项就是ListCount-1,没有必要再对自己进行比较了.