![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в цикле уменьнить на еденицу переменную цикла
AZIZE © (2007-07-11 19:16:00)Как в цикле уменьнить на еденицу переменную цикла
vpbar (2007-07-11 21:04:00) [1]да это наш хакерский метод, потому и не рекомендую
Anatoly Podgoretsky (2007-07-11 20:54:00) [2]> vpbar (11.07.2007 20:13:07) [7]
Это не наш метод, а хакерский и чреватый.
{RASkov} (2007-07-11 20:38:00) [3]
N:=0;
while N<10 do begin
.....
if not Verify(N) then DEC(N) else INC(N);
end;
Но отсюда можно и не вылезти...) Хотя можно и так решить:
N:=0;
NStop:=0;
while N<10 do begin
.....
if not Verify(N) then DEC(N) else INC(N);
INC(NStop);
if NStop>=1000 then raise Except.Create('Не могу выйти, закружилась');
end;
{RASkov} (2007-07-11 20:31:00) [4][7],[8] все это безобидно решается [5] :)
vpbar (2007-07-11 20:15:00) [5]Да. там увеличение inc(p^) а не уменьшение dec(p^), ибо в этом случае цикл получился бы бесконечный. Поэтому, из-за большой вероятности таких ошибок делать так не рекомендую
vpbar (2007-07-11 20:13:00) [6]Вообще менять пременную цикла (for - этот ведь цикл имелся ввиду?) нельзя, да и Делфи этого не позволяет. Но если очень хочется то можно. Вот код:
var i:integer;
p:PINT;
begin
memo1.Clear;
for i:=1 to 10 do begin
p:=@i;
if i=5 then inc(p^);
memo1.Lines.Add(inttostr(i));
end;
end;
Virgo_Style (2007-07-11 19:59:00) [7]Virgo_Style © (11.07.07 19:57) [5]
Э, нет. Прошу пардону, подошел бы, если бы надо было перейти на следующую итерацию, если на предыдущую - то нет... Но если цикл с downto, то [5] в силе. В чем я уже весьма сомневаюсь.
Virgo_Style (2007-07-11 19:57:00) [8]а мой телепатор считает, что ему continue подойдет
Anatoly Podgoretsky (2007-07-11 19:45:00) [9]Он вообще то говорит об ручном изменение переменной цикла.
Desdechado (2007-07-11 19:19:00) [10]> Anatoly Podgoretsky © (11.07.07 19:18) [2]
Чего это вдруг?
for i:=10 downto 0 do
Типичное уменьшение на единицу на каждой итерации.
TUser (2007-07-11 19:18:00) [11]while
repeat
си
на Паскале в цикле for нельзя
Anatoly Podgoretsky (2007-07-11 19:18:00) [12]Это делать нельзя, да и Дельфи не позволит.