Totally don't agree here. Switching on a variable is what switches are for.
Not switches, per se, but using switches (which are typically meant to branch logic) to imitate the use of AND logic (which is what && is for).
Why do you think switches are ugly?
In some situations it may be the best solution, but in general I prefer to use if() when I mean logical IF, and && when I mean logical AND.
Switching, yes, but you aren't switching (the code execution path isn't really changing much), you're faking multiple logical ANDs, and using more lines to do so, with twice the level of indention, and slightly less code clarity.