Consider:
if (a=5) { /* do something */ }
How does the assignment work as a condition?
Is it based on non-zero value of l-value?
Every non-zero value will be considered as true.
So some people will suggest you write
5 == a
to avoid that you make mistake == by =.