Как прервать цикл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
claymen
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 14.04.2006 (Пт) 16:07
Откуда: КЫРГЫЗСТАН г.Бишкек

Как прервать цикл

Сообщение claymen » 17.07.2008 (Чт) 21:54

Подскажите пожалусто на примере, как можно прервать цикл.
Код: Выделить всё
for i=1 to x
next i

А то, если x становится слишком большим, программа подвисат до его полного выполнения.
и начинали мы все чайниками, но потом...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2008 (Чт) 22:00

1) Бред какой-то.
2) Что должно по твоему быть до его полнового выполнения? Что-то другое, отличное от того, что ты именуешь подвисанием?
3) Exit For
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Сообщение Proxy » 17.07.2008 (Чт) 22:02

EXIT FOR - выход из цикла For...next
EXIT DO соответственно
EXIT Function/Sub соответственно
DoEvents - передаст управление прочему нуждающемуся (предотвратит зависание GUI)

claymen
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 14.04.2006 (Пт) 16:07
Откуда: КЫРГЫЗСТАН г.Бишкек

Сообщение claymen » 17.07.2008 (Чт) 22:13

ОК. Я дал всем остальным возможность делать свои дела пока цикл все еще идет. А можно ли его убить по нажатию на кнопку на форме ?
Ведь нажимая, я не попадаю в цикл, т.к. он идет в Form_Load
и начинали мы все чайниками, но потом...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2008 (Чт) 22:23

claymen
Нажатие на кнопку не будет обработано, пока работает цикл.

А если и будет, то только при условии, что ты из этого цикла постоянно вызываешь DoEvents. А если так, то после того как отработает Form_Load, выполнение вернётся в DoEvents, а из него обратно в цикл.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Сообщение Proxy » 17.07.2008 (Чт) 22:33

Вобщем DoEvents запихай в тело цикла и тама
If OutMode then Exit For
Но! В области объявлений Dim OutModa as boolean
И Перед циклом лучше бы OutMode = false
А по нажатию кнопки OutMode = true

claymen
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 14.04.2006 (Пт) 16:07
Откуда: КЫРГЫЗСТАН г.Бишкек

Сообщение claymen » 17.07.2008 (Чт) 22:42

Proxy
Большое спасибо! Помогло.
и начинали мы все чайниками, но потом...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46

    TopList