我試圖保持1-10計數,如果計數達到了10它在1如何重新開始計數
Tick := 5;
currentTick := 8;
現在FinalTick
開始回將是CurrentTick +蜱但一旦值是10,應該在1 STAT超過因此在這種情況下
5 + 8 = 3
如何做呢?
我試圖保持1-10計數,如果計數達到了10它在1如何重新開始計數
Tick := 5;
currentTick := 8;
現在FinalTick
開始回將是CurrentTick +蜱但一旦值是10,應該在1 STAT超過因此在這種情況下
5 + 8 = 3
如何做呢?
如果你想指望成爲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;
我會使用所謂的模運算符(http://en.wikipedia.org/wiki/Modulo_operation)。 FinalTick:=(CurrentTick + Tick)mod 10;
FinalTick:=(CurrentTick + Tick)mod 10;
「如果算上越過10它開始回到1」 所以加*如果FinalTick = 0,則FinalTick:= 10 ; * – 2012-07-23 14:46:06
你應該使用模運算符,如
Val:=(5+8) mod 10
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;
由於從未聽說過這個模運算 – 2012-07-21 15:11:43