如何重新计算

时间:2012-07-21 15:05:16

标签: delphi delphi-xe2

我试图保持1-10计数,如果计数超过10,则从1开始。

Tick := 5;
currentTick := 8;

现在FinalTick将是CurrentTick + Tick,但是一旦值为10,它应该在1处进行统计,因此在这种情况下

5 + 8 = 3

我该怎么做?

4 个答案:

答案 0 :(得分:5)

如果你想要数为0,1,2,3,4,5,6,7,8,9,0,1,2,3,4等,你可以:

procedure IncCount(var ACount: Integer);
begin
  ACount := (ACount + 1) mod 10;
end;

如果你想数为1,2,3,4,5,6,7,8,9,10,1,2,3,4等,你可以:

procedure IncCount(var ACount: Integer);
begin
  ACount := ACount mod 10 + 1;
end;

答案 1 :(得分:5)

我会使用所谓的模运算符(http://en.wikipedia.org/wiki/Modulo_operation)。

  

FinalTick:=(CurrentTick + Tick)mod 10;

答案 2 :(得分:3)

您应该使用模运算符,例如

Val:=(5+8) mod 10

答案 3 :(得分:2)

MOD运算符是解决方案,因为这里的答案最多。

有时这可能会有所帮助:

procedure Foo;
var I: Integer;
begin
  I := 0;
  repeat
    I := I + 1;
    // Do your stuff here
    ShowMessage(IntToStr(I));
    // Add some exit conition, like:
    // if (..) then break;
    if I = 10 then I := 0;
  until False;
end;
相关问题