Замена меток

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Замена меток

Сообщение Mikhail235 » 07.01.2013 19:50:09

О том, что метки и, естественно goto плохое решение знают все.
Но вот столкнулся с проблемой, с которой, я уверен, сталкивается большинство:
Вводим какое-то значение, затем проверяем его и в зависимости от правильности либо продолжаем работу, либо возвращаемся с указаниями на повторение ввода. Так вот этот возврат у меня осуществляется через goto, а как решают эту проблему профессионалы.
Спасибо
Mikhail235
незнакомец
 
Сообщения: 4
Зарегистрирован: 06.01.2013 17:56:40

Re: Замена меток

Сообщение bormant » 07.01.2013 19:55:57

Код: Выделить всё
repeat
  write('Введите ...: ') readln(data);
  if IsValid(data) then break
  else writeln('*** ошибка ... Повторите ввод.');
until false;
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Замена меток

Сообщение NTFS » 07.01.2013 20:07:16

Чисто OFF: В самом GoTo нет ничего плохого... профессионал не колеблясь поставит его там, где это упросит код, а ортодокс будет размазывать флаги и постусловия.

Добавлено спустя 1 минуту 2 секунды:
Классический пример - прерывание двойного цикла. Кто скажет, что никогда не ставил там GoTo - пусть бросит в меня камень.
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: Замена меток

Сообщение Mikhail235 » 07.01.2013 20:19:54

Спасибо, все получилось. В своих рассуждениях не учел break
Mikhail235
незнакомец
 
Сообщения: 4
Зарегистрирован: 06.01.2013 17:56:40

Re: Замена меток

Сообщение stikriz » 07.01.2013 22:03:29

NTFS писал(а):Классический пример - прерывание двойного цикла.

У ортодокса есть один метод - raise и потом анализ типа исключения. Если подходить филосовски, то и Continue и Exit - это goto.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Замена меток

Сообщение Brainenjii » 07.01.2013 22:33:41

где б взять камень :-D
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Замена меток

Сообщение Padre_Mortius » 07.01.2013 22:49:33

Чисто OFF: В самом GoTo нет ничего плохого... профессионал не колеблясь поставит его там, где это упросит код, а ортодокс будет размазывать флаги и постусловия.

ага... просто иногда хочется за такие упрощения с goto просто медленно убивать медленно. В 99,5% случаев в pascal можно обойтись без меток. Оставлю 0,5% случаев на редкие извращения.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб


Вернуться в Обучение Free Pascal

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

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

Рейтинг@Mail.ru