如何检查整数是否为先前检索到的数字的正负20。

时间:2017-12-01 16:52:37

标签: objective-c integer range

我经常在我的应用中动态获取一个数字,并且如果新数字比前一个数字加或减20,则需要一个方法来触发。不一定是20岁,但仅仅是为了争论。

第一个数字100。

第二个数字123>方法触发器。保存第二个号码。

第三个数字90>方法触发器。保存第三个号码。

第一号码。

第二个数字77>方法触发器。保存

第三个数字80>方法不会触发。保存

第四个数字101方法触发器。保存

3 个答案:

答案 0 :(得分:0)

你的描述有点令人困惑,但听起来你想知道两个数字之间的差异是否大于20,那么你想要触发一些东西。

简单地说:

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

答案 1 :(得分:0)

您可以通过添加以下条件来检查号码的范围:

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

“20”可以是您想要的动态数字

答案 2 :(得分:0)

以下是一种方式的概述。

你说允许的差异可以改变,所以声明一个变量,可能是一个适当类的实例变量,比如说maximumDifference并在适当的点设置它的值:

maximumDifference = 20;

你还需要记住最后一个数字,所以为此声明一个变量,也可能是一个实例变量,比如previousNumber。在某些时候,您将为此分配第一个数字:

previousNumber = ... first number ...

现在,当第二个及后续数字到达时,您需要检查它们是否在maximumDifference的{​​{1}}之外并触发您的操作,然后更新previousNumber。您可以通过两次比较或使用previousNumber函数进行内部检查,以找出正差异并进行比较。以下是第二种方法的概述:

abs()

HTH