Why doesn\'t the compiler automatically put break statements after each code block in the switch? Is it for historical reasons? When would you want multiple code blocks to e
Historically, it's because the case
was essentially defining a label
, also known as the target point of a goto
call. The switch statement and its associated cases really just represent a multiway branch with multiple potential entry points into a stream of code.
All that said, it has been noted a nearly infinite number of times that break
is almost always the default behavior that you'd rather have at the end of every case.