Форум: "Начинающим";
Текущий архив: 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