Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

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;

    }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software