Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Visual Basic 2008
Показать сообщение отдельно

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Самый близкий к For Each ... Next цикл For ... Next вот на примере их сравнивание и покажу разницу.
For Each ... Next удобен, когда необходимо проделать действия с каждым элементом массива, не задумываясь о количестве его элементов
Код: Выделить весь код
Sub AddNamesToList(ByVal ParamArray NamesArray() As Object)
Dim x As Object
For Each x In NamesArray
ListBox1.Items.Add(x)
Next x
End Sub
после этого в коде пишем AddNamesToList("A", "B", ...."Пока не надоест ")
Для цикла на базе с For ... Next потребуется уточнения про количество параметров, которые передаются
Код: Выделить весь код
Sub AddNamesToList(ByRef I As Integer, ByVal ParamArray NamesArray() As Object)
Dim x As Integer
        For x = ListBox1.Items.Count + 1 To ListBox1.Items.Count + I
        ‘ListBox1.Items.Add(NamesArray(Rem...))
        Next x
End Sub
AddNamesToList(3, "A", "B", "Теперь указанно, что три элемента ")
и намного больше времени на адаптацию самого кода добавления в список, что б получить тот же эффект что и в предыдущем коде.
С другой стороны иногда требуется сделать выборку не по всем элементам массива, тогда удобнее For ... Next. Да можно и в For Each ... Next указать через If/Select Case и т.д. какие элементы интересуют, но это уже усложнения, проще взять For ... Next, например указывая только чётные элементы
Код: Выделить весь код
For iCounter = 0 to 10 Step 2
...
Next iCounter
Вот ещё два примера сравнений двух структур
Код: Выделить весь код
Dim i As Integer
For i = 0 To ListBox1.Items.Count - 1
{ statements to process item ListBox1.Items(i) }
Next
...
Dim itm As Object
For Each itm In ListBox1.Items
{ process the current item, represented by the itm variable }
Next
http://www.askit.ru/custom/progr_adm...ript_loops.htm страница хоть и про VbScript но объяснение про циклы катит.

Отправлено: 16:08, 25-06-2008 | #141

Название темы: Visual Basic 2008