First question: No, unless you overloaded the '&&' operator.
C++ uses "lazy evaluation" a.k.a. short-circuiting. In short, if it finds a value that determines the "total", it stops. For example,
if (a && b && c)
is 0 if one of the three is false, regardless of what the others are. Thus, if a is false, it can stop right there. If a is true, it checks b, and so on. The other way around,
if (a || b || c)
short-circuits when it finds any true, because then the complete statement evaluates as true.
For if vs switch: it depends, and I'm not nearly experienced enough to know on what. I do know that for "easy" if-elseif/switch constructs, a decent compiler will generate the same code. There was an article posted here on micro-optimizations not too long ago. Mail codekiddy if you want it. However, I don't think that for basic cases you'll get any extra juice out of using "the best one".
[edit]
Found the topic and article:
http://www.cplusplus.com/forum/lounge/58994/
The part on if/switch/jtables is in the first few pages.
Be careful when reading it; much of it is outdated (or platform/compiler-dependent). T