Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Parâmetro final

    static int x(final int l) {
        for(int i = 0; i < 100; i++) {
            switch(i) {
                case l:
                System.out.println(l);
                if(l==i) break;
            }
        }

        return -1;

    }

Porque ese código não compila?

1 resposta
solução

Oi Manoel!

O case do switch requer constantes que foram inicializadas. Mesmo com o final no parâmetro l, não temos como saber qual será o valor de l. Precisaria ser algo como. Então ou colocamos um valor literal no case (numero chumbado):

    static int x(final int l) {
        for(int i = 0; i < 100; i++) {
            switch(i) {
                case 3:
                System.out.println(l);
                if(l==i) break;
            }
        }

        return -1;

    }

Ou definimos o valor de l:

    static int x() {
    final int l = 3;

        for(int i = 0; i < 100; i++) {
            switch(i) {
                case l:
                System.out.println(l);
                if(l==i) break;
            }
        }

        return -1;

    }