![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сумасшедший цикл [D7, WinXP]
Creative © (2006-11-01 15:54:00)Люди добрые помогите, такое вижу впервые.
Есть цикл:
var
MyArray: array [0..3] of TMyClass;
(Value: integer - свойство TMyClass)
implementation
for i:= 0 to 3 do
if MyArray[i].Value = 9 then
begin
...
end;
1. цикл начинается не с 0, а с 4
2. если MyArray[i].Value = 9 - программа условие пропускает. а если MyArray[i].Value = 8 - входит в него.
Скажите, кто из нас идиот? Я не против если я, вы только объясните, что происходит!!!
DrPass (2006-11-01 17:08:00) [21]
> Creative (01.11.06 16:39) [6]
Ну как... в настройках компилятора, пункт Optimization
Jeer (2006-11-01 17:02:00) [22]Если как-либо использовать индекс цикла (по чтению) внутри цикла, то наступает минута просветления.
Creative (2006-11-01 16:39:00) [23]>Если отключить оптимизатор, все станет на свои места?
а как его отключить?
DrPass (2006-11-01 16:37:00) [24]
> Creative (01.11.06 16:25) [3]
> >в п.2 не верю
>
> честно говоря я не знаю, как предъявить мнение отладчика
На конечный результат это поведение как-то влияет?
Если отключить оптимизатор, все станет на свои места?
novill (2006-11-01 16:29:00) [25]Ну очень странно, только что проверил - всё срабатывает как надо.
type
Myclass=Class
public
value:integer;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
MyArray: array [0..3] of Myclass;
i:integer;
begin
MyArray[0]:=Myclass.Create;
MyArray[1]:=Myclass.Create;
MyArray[2]:=Myclass.Create;
MyArray[3]:=Myclass.Create;
MyArray[0].value:=7;
MyArray[1].value:=9;
MyArray[2].value:=8;
MyArray[3].value:=9;
for i:= 0 to 3 do
if MyArray[i].value = 9 then
begin
ShowMessage(IntToStr(i)+' '+IntToStr(MyArray[i].value));
end;
end;
Creative (2006-11-01 16:25:00) [26]>в п.2 не верю
честно говоря я не знаю, как предъявить мнение отладчика
Desdechado (2006-11-01 16:12:00) [27]п.1 на результат не влияет, потому компилятор сам выбирает, как крутить цикл
в п.2 не верю
Dmitrij_K (2006-11-01 15:56:00) [28]Оптимизация
Вниз быстрее считает.