Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 688

/ вопрос открыт /

Здравствуйте, уважаемые эксперты! Извините за такой явно ламерский вопрос, у меня возникла проблема с выходом из цикла. Пример в приложении снизу.
В общем, если не указать выход, в итоге результат будет браться от значения последней строки списка list.
А в данном случае, с выходом при совпадении все результаты пусты! Укажите пожалуйста ошибку. Заранее спасибо.

Приложение:
  1. for i:=0 to list.Count-1 do begin
  2. Application.ProcessMessages;
  3. object:=list.Names[i];
  4. subject:=text;
  5. if objsub.Match=true then begin
  6. exit;
  7. result:=list.Values[object];
  8. end else
  9. result:=list.Values[subject];
  10. end;


Phoenix Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Phoenix (статус: Посетитель)
Вопрос отправлен: 1 июля 2007, 20:55
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Dron

Здравствуйте, Phoenix!
Ваша ошибка в том, что Exit нельзя использовать для выхода из цикла. Exit осуществует выход из всей процедуры. Для выхода из цикла следует использовать Break. Удачи!

Ответ отправил: Dron (статус: Студент)
Время отправки: 1 июля 2007, 21:53

Ответ #2. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Phoenix!
И еще result:=list.Values[object]; должно быть до exit, естественно.

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 2 июля 2007, 01:16


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 1 июля 2007, 22:23; участников в обсуждении: 2.
Dron

Dron (статус: Студент), 1 июля 2007, 21:07 [#1]:

Exit - выход из всей процедуры. Для выхода из цикла нужно использовать Break.
С уважением.
Phoenix

Phoenix (статус: Посетитель), 1 июля 2007, 21:14 [#2]:

спасибо большое, ес чесно я считал, что break и exit - одно и тоже ;)
Dron

Dron (статус: Студент), 1 июля 2007, 21:27 [#3]:

Глупо было бы создавать для одной операции две разных команды...
Значит помогло?
С уважением.
Phoenix

Phoenix (статус: Посетитель), 1 июля 2007, 21:36 [#4]:

помогло конечно, другое дело.
хотя есть разные команды для одной операции.
Dron

Dron (статус: Студент), 1 июля 2007, 21:52 [#5]:

Ммм... Например?
С функциями-то всё понятно, а вот разные команды языка...
С уважением.
Phoenix

Phoenix (статус: Посетитель), 1 июля 2007, 22:15 [#6]:

конечно с командами погорячился, полностью одинаковых нет, зато есть очень похожие (как в нашем случае с ехитом)
Dron

Dron (статус: Студент), 1 июля 2007, 22:23 [#7]:

Ну, они похожи только семантически в переводе на русский язык... Да и то не особо... :-)
С уважением.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:43
Выполнено за 0.03 сек.