Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

примитив про цикл   Найти похожие ветки 

 
заза   (2008-02-03 15:57) [0]

for i := Low(RecArr) to High(RecArr) do
 with RecArr[i] do
   if (Edit1.Text <> RecData1) and (Edit1.Text <> RecData2) then
   begin
     //ok , test
     Halt;
   end else
   begin
     ShowMessage("Имена совпадают, что-то не так")
     Break;
   end;


RecArr - это массив состоящий из record"ов.

Я не пойму, почему Break не работает так как мне хочется. Если срабатывает else, после Break цикл крутится до следующего элемента и на нем уже срабатывает if. Т.е. Break не помогает.


 
Johnmen ©   (2008-02-03 16:00) [1]

А как ты проверил, что крутится?


 
Сергей М. ©   (2008-02-03 16:02) [2]


> после Break цикл крутится до следующего элемента


На основании чего ты утверждаешь это ?


 
Thrasher ©   (2008-02-05 14:26) [3]

Сделай условие по-другому:

for i := Low(RecArr) to High(RecArr) do
with RecArr[i] do
  if (Edit1.Text = RecData1) and (Edit1.Text = RecData2) then
  begin
    ShowMessage("Имена совпадают, что-то не так")
    Break;
  end
    else
 begin
    //ok , test
    Halt;
 end;

Странная вещь в этом коде - если имена совпадают, то Break, если не совпадают, то Halt. Автор разберись в коде!

Вообще такие конструкции надо стараться избегать. Дело в том, что при компилировании в машинный код, компилятор данную конструкцию компилирует БЕЗ сохранения флагов проверки.


 
Johnmen ©   (2008-02-05 14:39) [4]


> Thrasher ©   (05.02.08 14:26) [3]
> Сделай условие по-другому:

Логика "другого условия" не соответствует логике автора.
Учите азы булевой алгебры. А уж потом советуйте...


 
ketmar ©   (2008-02-05 15:34) [5]

>[3] Thrasher ©(05.02.08 14:26)
>Дело в том, что при компилировании в машинный код, компилятор данную
>конструкцию компилирует БЕЗ сохранения флагов проверки.

можно это перевести на понятный русский?



Страницы: 1 вся ветка

Текущий архив: 2008.03.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
2-1202124840
Eugem
2008-02-04 14:34
2008.03.02
Как инициализировать экземпляр класса TStrings ?


15-1198476698
DelphiN!
2007-12-24 09:11
2008.03.02
Как заставить PopUp унаследовать настройки прокси главного окна?


15-1201478180
Lip
2008-01-28 02:56
2008.03.02
как сделать чтобы программы на builder e работали на других


2-1201868979
Danco
2008-02-01 15:29
2008.03.02
кнопка: во весь экран


3-1192105820
Dush
2007-10-11 16:30
2008.03.02
условие отображения данных в DBGridEh