检查数字是否在给定范围内的有效方法

本文关键字:范围内 有效 方法 数字 是否 检查 | 更新日期: 2023-09-27 18:17:44

考虑以下场景:

  • 我有两个常数MAX & MIN

  • 我得到一个新的号码 x

现在检查x是否在给定的范围内,我将这样做:

if(x >= MIN && X <= MAX)
{
   //Some logic
}
我想知道是否有更好的方式来谈论效率。我知道这是一个非常简单的任务,但我只是想知道是否有更好的方法

检查数字是否在给定范围内的有效方法

首先,这是一个典型的微优化案例,几乎没有回报。

话虽如此,"优化"这一点的唯一方法是,如果你事先知道其中一个比较很可能产生false。如果有,则将该比较放在首位,以利用布尔短路求值

if (x >= MIN && x <= MAX) { ... } // most efficient if x >= MIN is hardly ever true

if (x <= MAX && x >= MIN) { ... } // most efficient if x <= MAX is hardly ever true

如果这两种比较都是不可预测的,那么我们都浪费了时间…

如果您知道您的最小值将是0(您想要排除所有负数),您可以将If语句减少到

if (max <= (uint)x)