2017-05-10 3 views
0
private void dt_Tick(object sender, EventArgs e) 
{ 
    if (a == 0 || a < 9) 
    { 
     a++; 
     Label1.Content = a.ToString(); 
    } 
    else if (a >= 9 || a > 9) 
    { 
     a--; 
     Label1.Content = a.ToString(); 
    } 
} 
+0

Bitte helfen Sie. Ich möchte bis zu 10 inkrementieren, wenn ich 10 erreiche, wird es wie eine Schleife bis auf 0 dekrementiert. –

+0

War das ein exklusives OR? '(a> = 9 || a> 9)' –

+2

Bearbeiten Sie Ihre Frage, um eine Beschreibung hinzuzufügen – MickyD

Antwort

1

So viele Möglichkeiten, es zu tun, könnten Sie verwenden: -

Queue<int> queue = 
    new Queue<int>(Enumerable.Range(1, 10).Concat(Enumerable.Range(2, 8).Reverse())); 

private void dt_Tick(object sender, EventArgs e) 
{ 
    var a = queue.Dequeue(); 
    Label1.Content = a.ToString(); 
    queue.Enqueue(a); 
} 
+0

Perfect. Es funktioniert, je nachdem, wie ich es will. Vielen Dank. Erfahren Sie mehr, um herauszufinden, wie es passiert ist LOL. –

2

Folgendes kann eine Probe sein:

int n = 1; 
    int increase = 1; 
    private void dt_Tick_Tick(object sender, EventArgs e) 
    { 
     if (n > 9 || n < 1) 
      increase *= -1; 
     n += increase; 
     Label1.Content = n.ToString(); 
    } 
0

Wenn die Gesamtzahl der Ticks wichtig ist oder eine kontinuierliche Funktion erforderlich ist, wird eine Form der Dreiecksschwingung zwischen 0 und 1 mit der Periode 2 durch

angegeben Triangle wave range 0-1, period 2
(6) (Trott 2004, p. 228), wobei nint (x) die nächste ganzzahlige Funktion ist.

dh. Dreieckswelle im Bereich zwischen 0 und 10 mit der Periode 20 wird durch

Triangle wave range 0-10, period 20 gegeben

ticks++; 
var a = 10 - 20 * Math.Abs(Math.Round(((ticks + 10)/20) - ((ticks + 10)/20)); 

Für jedes Intervall (gleich):

ticks = ticks + 0.25; 
var a = 10 - 20 * Math.Abs(Math.Round(((ticks + 10)/20) - ((ticks + 10)/20)); 

mathworld.wolfram.com/TriangleWave.html

Verwandte Themen