Sid - 3 months ago 37

C# Question

Consider the following scenario:

- I have 2 constants
**MAX**&**MIN** - I get a new number
**x**

Now to check if x in the given rage I would do something like this:

`if(x >= MIN && X <= MAX)`

{

//Some logic

}

I wondering if there's a better way to go talking about efficiency. I do know that's a very simple task, but I am just curious to know if there's a better way

Answer

First of all this is a typical case of micro-optimization that almost never pays off.

Having said that, the only way to 'optimize' this is if you know in advance that one of the comparisons is highly likely to produce `false`

. If there is one, then put that comparison first, to take advantage of *boolean short-circuit evaluation*.

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

or

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

And if neither comparison is predictable, then we have all wasted time...