Some bad examples here…
Solution #1 has bugs and that’s exactly why you shouldnt be doing complex conditions with AND and OR operators. They do not exist as a if replacement.
!!! You need parentheses dude!
The problem is not if statements, is logic complexity.
If logic around something is so complex you need a series of conditions check, your code may be too complex or confusing.
Solution #2
Switches are perfect solution here. If you dont like them, that solution could be split into dedicated mapped functions.
Trying to eliminate if statements (branchless programming) is often a good thing but you step into some complex programming style which requires more crazy unreadable solutions which are often not worthy. Believe me 😊
Simplify and split logic will do a lot more for you.
P.s: Ill be dropping a post on this next for anyone interested in more workarounds