|
|
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 09:55:53 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
EXIT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 10:00:07 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Когда-то мне требовалось то же и я вставила в цикл условие IF LASTKEY()=... У меня сработало - цикл останавливался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 10:02:21 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
ЛисонькаЗдравствуйте! Когда-то мне требовалось то же и я вставила в цикл условие IF LASTKEY()=... У меня сработало - цикл останавливался. Но выходила то ты все равно через EXIT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 10:07:47 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
*Можно и через RETURN clear type DO WHILE .t. wait 'Бла бла!' wind nowait if inkey() = 27 RETURN -1 endif ENDO RETURN 1 * только жать надо много и сильно, т.к. inkey() быстро проскакивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 11:39:32 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
AleksMedНо выходила то ты все равно через EXIT Кто же спорит? Коченчно, через EXIT. Но ему-то, думаю, важен не сам выход, а как на него выйти. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 12:44:00 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
Сама себя перепроверила. Лучше даже так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 13:13:33 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
Лисонька, а так будет всетаки короче: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 13:26:03 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
Hi, Лисонька ! ПРОГРАММНО прерывание цикла возможно - только по EXIT или RETURN (кстати и не обязательно, чтобы он был с -1) Это - как раз и есть единственный ответ на задававшийся вначале вопрос. :) А прерывание по нажатию клавиши - все равно ведь тоже происходит с помощью этих же команд. Хотя можно еще определить прерывание цикла DO WHILE и в самом условии (т.е. без этих команд): DO WHILE LASTKEY()#27 ... ENDDO Правда, не всегда это бывает удобно, тогда вместо этого после какой-то команды, где происходит приостановка и нужно сделать выбор, вставляют: IF LASTKEY()=27 EXIT ENDIF А в твоем последнем примере - для чего вот так, вручную, прерывать цикл FOR...ENDFOR ? Просто так, потому что надоело ждать, когда это все там сосчитается? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 13:59:18 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
Цикл DO WHILE <условие> , конечно же еще будет прерываться ПРОГРАММНО и по указанному условию (без EXIT и RETURN). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 14:09:32 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
CrispyЦикл DO WHILE <условие> , конечно же еще будет прерываться ПРОГРАММНО и по указанному условию (без EXIT и RETURN). Если только <условие> != .T. ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 14:50:32 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
CrispyА в твоем последнем примере - для чего вот так, вручную, прерывать цикл FOR...ENDFOR ? Просто так, потому что надоело ждать, когда это все там сосчитается? :) Здравствуйте! Ну, во-первых, вопрос здесь поднят не мной, а member'ом с ником SVR. Согласитесь, что ничего конкретного в его вопросе не описано. Просто вопрос о выход из цыкла или аварийном прерывании его. Во-вторых, иногда, бывает, так запишешься, что твой цикл зацикливается на самом себе, а клавиша ESC не помогает. Может, это и происходит у SBR. В-третьих, может, кому и надоедает ждать ;-)) И последнее: ну ведь работает прерываение цикла, правда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 15:05:39 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
Само собой. Другое толкование этой фразы - было бы и вовсе бессмысленно :) Просто, скажем, условие: DO WHILE EMTY(a)=.T. Абсолютно аналогичео DO WHILE EMTY(a) Но первое как-то не принято среди большинства программистов. Может у теоретиков разве что... :) То же самое, кстати, когда вместо RETURN.T. пишут просто RETURN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 15:10:26 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
2Лисонька (то, что я написал чуть выше - это на замечание Urri, извиняюсь, забыл уточнить) Лисонька иногда, бывает, так запишешься, что твой цикл зацикливается на самом себе, а клавиша ESC не помогает. Если такое бывает... :) - выполняй сначала сомнительный код через Debugger - точно никогда не зациклишься. :) Или уж ставь такую возможность прерывания на период отладки - в самом начале программы - пока достаточно не напрактикуешься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 15:22:34 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
CrispyСамо собой. Другое толкование этой фразы - было бы и вовсе бессмысленно :) Просто, скажем, условие: DO WHILE EMTY(a)=.T. Абсолютно аналогичео DO WHILE EMTY(a) Но первое как-то не принято среди большинства программистов. Может у теоретиков разве что... :) То же самое, кстати, когда вместо RETURN.T. пишут просто RETURN.Да нет, я имел в виду цикл типа DO WHILE .T. ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 17:05:28 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
CrispyЕсли такое бывает... :) - выполняй сначала сомнительный код через Debugger - точно никогда не зациклишься. :) Кстати о Debugger. Практически им не пользовалась, в первую очередь потому, что не очень-то уяснила его пользу для себя (леди и джентельмены, не смейтесь, конечно, я не считаю себя пупом земли). Я понимаю, что это отличная вещь для тестирования своих кодов в prg-файлах. А выдрать код из какого-нибудь объекта формы и опробовать его через Debugger - зачастую нужно в этот код сваливать и все PUBLIC переменные, что прописаны и в нем и в др. объектах. Может, кто-нибудь попробует переубедить меня? Только хорошими аргументами и критическим разгромом моих взглядов на Debugger. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 19:02:24 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
Между прочим, в этом топике уже 15 ответов, а многоуважаемый SVR, из-за которого и разгорелся весь сыр-бор, что-то помалкивает. Наверно, все-таки зациклился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 19:04:10 |
|
||
|
Какой командой программно можно прервать выполнение цикла?
|
|||
|---|---|---|---|
|
#18+
ЛисонькаА выдрать код из какого-нибудь объекта формы и опробовать его через Debugger - зачастую нужно в этот код сваливать и все PUBLIC переменные, что прописаны и в нем и в др. объектах. Ну выдирать то зачем. Расставив точки останова или поместив в нужном месте кода команду SET STEP ON ты в Дебагере можешь пройти пошагово проблемный участок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 10:02:49 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33178644&tid=1593824]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
184ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 475ms |

| 0 / 0 |
