我经常在我的应用中动态获取一个数字,并且如果新数字比前一个数字加或减20,则需要一个方法来触发。不一定是20岁,但仅仅是为了争论。
第一个数字100。
第二个数字123>方法触发器。保存第二个号码。
第三个数字90>方法触发器。保存第三个号码。
或
第一号码。
第二个数字77>方法触发器。保存
第三个数字80>方法不会触发。保存
第四个数字101方法触发器。保存
答案 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