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

Erro nao listado nas opções da questao

O codigo da questao possui um trecho que eu acredito que vai causar um erro de loop infinito ou stackoverflow. Se o numero de parametros passados por linha de comando for menor que 10, a linha com o codigo if(l<10) return b(l); // C vai executar indefinidamente. Me corrijam se eu estiver errado.

class A {
    public static void main(String[] args) {
        System.out.println(a(args.length));
    }
    static int a(int l) {
        if(l<10) return b(l); //A
        else return c(); // B
    }
    static int b(int l) {
        if(l<10) return b(l); // C
        else return c(); // D
    }
    static long c() {
        return 3;
    }
}
2 respostas

Oi Alexandre

Esse código nem compila na verdade.

c() retorna um long, mas b() e a() retornam um int, irá dar erro de compilação.

Sim, é uma das opções no exercício. Essa problema é um que não tinha no exercício, mas enfim..