That's an extremely bad example - why would cat <i>ever</i> fall through to dog? At least come up with a situation where fall through makes sense.<p>Generally, IMO, it's a much better idea to use meaningful constants and method names.<p>So the code becomes:<p><pre><code> switch(action) {
case CHECK_AND_FOO:
check();
case FOO:
foo();
break;
default:
llama();
}
</code></pre>
Now, Joe would not only know not to add in a break, but also <i>why</i> - all without adding a single comment.