- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
for i:=1 to 100 do
begin
for j:=1 to f do
begin
...
end;
f:=f+1000;
end;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+93
for i:=1 to 100 do
begin
for j:=1 to f do
begin
...
end;
f:=f+1000;
end;
Бедные дельфины, им не повезло с циклами.
... the expressions initialValue and finalValue are evaluated only once
Что ты хотел сказать этим говнокодом?
Я минус не трогал ни одним виртуалом, честно.
Ааа, я понял, ты про ограничения цикла for. Наш фор - это конструкция более высокоуровневая, чем сишный, являющийся полной копией while, да.
Вывод: Используйте мат там, где он необходим и только.
(Типы имеют нормальное имя и их можно использовать в массивах и итераторах, вместо целых магических чисел)
А вот менять итератор в теле цикла - это не хорошо. Эту ошибку потом будешь искать два-три дня и корить себя за невнимательность. Лучше уж пользоваться while/repeat циклами.
Паскаль тем хорош, что циклы читаются чисто:
i.e:
type
TValues = (vOne, vTwo, vThree);
TOneArray = Array[TValues] of Integer;
var
a : TOneArray;
i : TValues;
begin
//... init here
for i := vOne to vThree do
Write( a[i] );
end;
Чисто и понятно - к чему имеешь доступ. И проверка типов ещё очень помогает (компилер ругнется, если ты 2 вместо vThree будешь использовать, хотя ord(vThree) = 2)
Строгая типизация рулит
И вообще, это касается перебора любых массивов
...
end loop;
Это АДА.