2017-12-01 6 views
-1

Ich bekomme eine Nummer dynamisch in meiner App und möchte eine Methode auslösen, wenn die neue Zahl plus oder minus 20 als die vorherige Zahl ist. Muss nicht 20 sein, sondern nur aus Gründen.Wie überprüfe ich, ob eine Ganzzahl plus oder minus 20 einer zuvor abgerufenen Zahl ist.

Erste Nummer 100.

Zweite Nummer 123> Methode auslöst. Zweite Nummer gespeichert.

Dritte Nummer 90> Methodenauslöser. Dritte Nummer gespeichert.

oder

erste Numerus 100.

Zweite Nummer 77> Methode auslöst. gespeichert

Dritte Nummer 80> Methode wird nicht ausgelöst. gespeichert

Vierte Zahl 101 Methodenauslöser. gespeichert

+0

Sie alles noch versucht haben? – Mureinik

+0

@Mureinik Ich versuchte, wenn (zweite Zahl + -20), aber glaube nicht, dass es funktioniert, wie ich denke, dass es tut – GunplaGamer

Antwort

0

wollen Hier ist der Umriss von ein Weg, um die Idee zu geben.

Sie sagen, dass die zulässige Differenz kann so eine Variable deklarieren ändern, wahrscheinlich eine Instanzvariable einer entsprechenden Klasse, sagen maximumDifference und an geeigneter Stelle seinen Wert:

maximumDifference = 20; 

Sie müssen auch daran denken, die letzte Zahl, also deklariere eine Variable dafür, wiederum wahrscheinlich eine Instanzvariable, sagen wir . Irgendwann werden Sie die erste Nummer dieser zuweisen:

previousNumber = ... first number ... 

Nun, wenn die zweite und die folgenden Nummern gelangen Sie müssen überprüfen, ob sie außerhalb des maximumDifference des sind und Sie Aktion auslösen, und dann aktualisieren . Sie können die interne Prüfung entweder mit zwei Vergleichen durchführen oder indem Sie die Funktion abs() verwenden, um die positive Differenz zu finden und diese zu vergleichen. Hier ist der Umriss des zweiten Ansatzes:

currentNumber = ... get the next number ... 
if(abs(currentNumber - previousNUmber) > maximumDifference) 
{ 
    // do whatever trigger action is required 
} 
// now update the saved last number 
previousNumber = currentNumber; 

HTH

0

Ihre Beschreibung ist ein wenig verwirrend, aber es klingt wie Sie wissen möchten, ob der Unterschied zwischen zwei Zahlen mehr als 20 ist, dann möchten Sie etwas auslösen.

einfach tun:

if (abs(firstNumber - secondNumber) > 20) { 
    // do something 
} 
0

Sie können den Bereich der Nummer überprüfen, indem Sie die folgende Bedingung hinzu:

max_Num = previousNum +20; 
min_Num = previousNum -20; 
if (previousNum >= min_Num && previousNum <= max_Num) 
{ 
    // ... 
} 

Wo "20" kann die dynamische Zahl Sie

Verwandte Themen