Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в цикле уменьнить на еденицу переменную цикла


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]

Это делать нельзя, да и Дельфи не позволит.


Наверх

Титульная страница Поиск, карта сайта Написать письмо