Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
заза   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.055 c
3-1192518920
Александр
2007-10-16 11:15
2008.03.02
Представление информации из баз данных в виде дерева


2-1202396342
Res
2008-02-07 17:59
2008.03.02
Ошибка


15-1201622881
Andrewtitoff
2008-01-29 19:08
2008.03.02
В чем ошибка?2


15-1201263477
TUser
2008-01-25 15:17
2008.03.02
Обживаем вин2003: множественность рабочих столов


15-1201366691
ZoldBerger
2008-01-26 19:58
2008.03.02
Исходники Delphi Decompiler а





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский