Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 3 da Aula 13 - Utilize o switch

Olá, neste exercício eu marquei a opção de não compilar por achar que o compilador avaliaria que quaisquer cases, exceto o primeiro, NUNCA seriam executados, visto que temos:

switch("Guilherme"){
    case "Guilherme":
        System.out.println("Guilherme");
        break;
    case "42":
        System.out.println("42");
    default:
        System.out.println("Não lembro o que era impresso");
]

Como o compilador avalia isto?

Abs.

2 respostas
solução!

Bruno,

Isso não seria um erro de compilação. Isso seria, no máximo, um Warning em uma IDE. É a mesma coisa que você usar true na condição de um bloco if e colocar um else. Você também não vai ter erro de compilação, mas vai ter um warning em alguma IDE.

Para ser considerado um erro de compilação, o seu código tem que estar errado ou o compilador avaliar as chances de possíveis erros. Nesse código daí, não importa quantas vezes ele vai executar, nunca dará erro, então, compila. Diferente do código defensivo que o compilador tem que dá erro quando você utiliza uma variável não inicializada. As chances de você ter um erro com isso são grandes, então, para garantir, erro de compilação.

Ajudou?

Ajudou bastante Arthur Obrigado!!