Есть веская причина для НЕ ИСПОЛЬЗОВАТЬ For i = LBound(arr) To UBound(arr)
dim arr(10)
выделяет одиннадцать элементов массива, от 0 до 10 (при условии, что база опций VB6 по умолчанию).
Многие программисты VB6 предполагают, что массив основан на единицах, и никогда не используют выделенное arr(0)
. Мы можем удалить потенциальный источник ошибок, используя For i = 1 To UBound(arr)
или For i = 0 To UBound(arr)
, потому что тогда становится ясно, используется ли arr(0)
.
For each
делает копию каждого элемента массива, а не указатель.
У этого есть две проблемы.
Когда мы пытаемся присвоить значение элементу массива, оно не отражается на оригинале. Этот код присваивает значение 47 переменной i
, но не влияет на элементы arr
.
arr = Array(3,4,8)
for each i in arr
i = 47
next i
Response.Write arr(0) '- returns 3, not 47
Мы не знаем индекс элемента массива в for each
, и нам не гарантируется последовательность элементов (хотя, кажется, это в порядке.)