Solucionado (ver solução)
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!!