Olá Gabriel, podemos retirar algumas linhas do seu código, como o "mostra" e o "contador" logo abaixo do while, ficando então:
while(contador <= 40) {
if(contador == 33) {
contador = contador + 1;
}
if(contador == 37) {
contador = contador + 1;
}
else {
mostra(contador);
contador = contador + 1
}
}
que é exatamente como a solução do professor.
Caso tenha curiosidade, tenho uma outra solução que faz o mesmo que este código e o reduz um pouco:
Podemos utilizar o operador lógico "ou" ( | ) para darmos outra condição ao if . Vejamos:
while(contador <= 40) {
if(contador == 33 | contador == 37) { //se o contador é igual á 33 OU o contador é igual á 37, então:
contador = contador + 1
}
else {
mostra(contador);
contador = contador + 1
}
}
Este operador substitui os dois "if" que colocamos. A ação que está dentro do bloco é executada caso uma das condições sejam verdadeiras. Provavelmente este operador será citado mais tarde nas aulas.
Espero ter ajudado :)