Регистрация | Вход
int i=1;int n=20;while (i<n){ do something i=i+1;}
условие( значение i изменилось значение i меньше значения n){ do something i=i+1;}n=20i=1
TCounter = class Data: Integer; Changed: Boolean; procedure Change(NewData: Integer);end;<...>i: TCounter;<...>procedure TCounter.Change(NewData: Integer);begin i.Data := NewData; i.Changed := true;end;<...>while i.Changed and (i.Data < n) dobegin i.Changed := false; DoSomething; i.Change(i.Data + 1);end;
while true dobegin if Trigger1 then Do1; if Trigger2 then Do2; if Trigger3 then Do3; <...>end;
function F(X: Integer): Integer;begin if X > 0 then F := X * F(X - 1) // следующий этап рекурсии else F := 1; // выход из рекурсииend;
F(3) = 3 * F(2) = 3 * 2 * F(1) = 3 * 2 * 1 * F(0) = 3 * 2 * 1 * 1 = 6.
repeat F1(state); F2(state);until false;
function F1(x: Integer):Integer;begin if x > 0 then F1 := F2(x - 1) else F1 := 0;end;function F2(x: Integer):Integer;begin if x > 0 then F2 := F1(x - 1) else F2 := 0;end;
F1(3) = F1(F2(2)) = F1(F2(F1(1))) = F1(F2(F1(F2(0)))) // "закрутились" = F1(F2(F1(0))) = F1(F2(0)) = F1(0) = 0. // "раскрутились"