Qual o proposito desse tipo de loop?

Galera, eu estava criando um programa e nesse programa eu estava usando uma framework, e na documentação dessa framework eu me deparei com esse loop:
for(;;){
}
Alguém pode me dizer em qual situação eu poderia usar esse tipo de loop?

Criar um loop infinito. Como esse loop não tem uma condição de parada definido, o loop só vai parar quando for jogada uma exception. Caso contrário, vai executar infinitamente. É como fazer:

while(true){
}

Inclusive, o código que vier depois do seu laço não compilará se você não jogar (e tratar!) uma exception dentro do for em algum momento:

        for(;;){
            if(i< 100)
                System.out.println("teste");
            i++;
            if (i==100){
                throw new Exception("I é igual a 100!");
            }
        }
        System.out.println("");

Isso ainda não compila, mas isso compila:

    int i = 0;
    try {
        for (; ; ) {
            if (i < 100)
                System.out.println("teste");
            i++;
            if (i == 100) {
                throw new Exception("I é igual a 100!");
            }
        }
    } catch (Exception e) {
        System.out.println(e.getLocalizedMessage());
    }

Nossa, nem passou pela minha cabeça isso, obrigadão por responder.

Por nada. Inclusive, boa escolha de foto de perfil. GorillaZ é minha banda favorita.

ou quando for utilizado a instrução break ou return.

Justamente. Esqueci de comentar isso, mas é exatamente isso.

1 curtida