Esta é realmente uma resposta ao comentário de Seanizer sobre a resposta de org.life.java, mas eu queria inserir algum código, então não pude usar o recurso de comentário.
Embora seja muito raro eu encontrar um uso para "quebrar rótulo", isso acontece ocasionalmente. O caso mais comum é quando procuro algo que está em uma estrutura que requer um loop aninhado para pesquisar, como:
search:
for (State state : stateList)
{
for (City city : state.cityList)
{
if (city.zipcode.equals(wantZip))
{
doSomethingTo(city);
break search;
}
}
}
Normalmente, nesses casos, empurro tudo para uma sub-rotina para que, em um acerto, possa retornar o objeto encontrado e, se ele cair do final do loop, posso retornar null para indicar um não encontrado ou talvez lançar uma exceção. Mas isso é ocasionalmente útil.
Francamente, acho que os inventores do Java incluíram esse recurso porque, entre isso e o tratamento de exceções, eles eliminaram os dois últimos usos legítimos do GOTO.
Adendo muito tarde:
Eu vi uma ótima linha de código uma vez. O programador escreveu:
http://www.example.com/xyz.jsp
for (Foo foo1 : foolist)
Na verdade, ele não disse "example.com", mas o site da nossa empresa.
Dá a impressão de que existe um URL no código. Compila com sucesso, como se fizesse alguma coisa. Mas o que isso faz?
Na realidade, não faz nada. "http:" é um rótulo ao qual ele nunca faz referência. Então o "//" transforma o resto da linha em um comentário.