Помощь - Поиск - Пользователи - Календарь
Полная версия: Прерывание цикла
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-=АнЮтА=-
Подскажите еще такую вещь, пожалуйста). Как мне прервать процедуру или цикл не выходя из программы. Halt не подходит. А exit - не помогает. nea.gif
volvo
Break (для цикла), или Exit (для процедуры) обязано работать... Показывай, как пробовала...
-=АнЮтА=-
procedure passw;
begin
writeln('Для продолжения нажмите Enter или для выхода нажмите Esc');
q:=readkey;
if q=#27 then exit ;
.....

end;

Примерно вот так) blink.gif
volvo
И что? Не работает? Как ты это определила?

(просто по приведенному фрагменту я ничего не могу сказать, я не знаю, ни ОТКУДА вызывается процедура Passw, ни что ДАЛЬШЕ в ней происходит, при нажатии Enter-а)...
-=АнЮтА=-
 procedure passw;
begin
writeln('Для продолжения нажмите Enter или для выхода нажмите Esc');
q:=readkey;
if q=#27 then exit ;
writeln('Введите пароль');
end;



Процедура вызывается в программе. Хочу, чтоб если нажат Esc - процедура завершала работу. А если не нажат - то просит ввести пароль.

Добавлено через 2 мин.
Если нажимаю Esc - она все равно просит пароль(((
volvo
У меня не просит (если работает ТОЛЬКО этот код)... Я ж тебе говорю, совсем нет уверенности, что, например, в буфере клавиатуры что-нибудь не осталось с предыдущих вводов данных (если так - то в переменную q будет читаться то, что осталось в буфере, и, естественно, это будет не код Esc, и будет запрос пароля...).

В крайнем случае - добавляй перед выводом сообщения очистку буфера:
while keypressed do readkey;
-=АнЮтА=-
Спасибо) Сейчас попробую)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.