言うまでもないが、実用上はこういう意義がある↓
int l = light(); // 軽い判定処理
int h = heavy(); // 重い判定処理
if (l && h) {...}
とやるよりは
if (light() && heavy()) {...}
のほうが、heavy を無駄に呼ばない分、効率的。
ただし、副作用がある場合には注意が必要。もちろん || でも同じ事。