Oi, Samantha! Tudo bem?
O código funciona muito bem. A utilização do operador OR (||) foi inserida nesse contexto de forma correta.
Algumas sugestões de melhoria podem ser aplicadas. Observe que dentro do laço while, tanto na condição de if quanto else nós temos a linha cont = cont + 1. Se essa linha ocorre independentemente da condição ser verdadeira ou falsa, nós podemos colocá-la fora do bloco de if-else. Então nós tinhamos esse código:
while (cont <= 40) {
if (cont == 33 || cont == 37) {
cont = cont + 1;
}
else {
mostra(cont);
cont = cont + 1;
}
}
E podemos transformar nesse:
while (cont <= 40) {
if (cont == 33 || cont == 37) {
}
else {
mostra(cont);
}
cont = cont + 1
}
Mas podemos observar que o bloco de código dentro do if é vazio, e é somente é executada a ação para as condições dentro do bloco else. E não tem nenhum problema isso ocorrer, mas também pode ser feita a troca da condição para que só utilizemos apenas o if.
O cenário do código é descrito como: "Para todos os números diferente de 33 (E) diferente 37, printe-os", então podemos montar uma condição utilizando operador lógico and, tal que if(cont != 33 && cont != 37), e teremos:
while (cont <= 40) {
if (cont != 33 || cont != 37) {
mostra(cont);
}
else {
}
cont = cont + 1
}
E por fim, podemos remover o bloco de else{} vazio, já que ele não
executa nenhuma ação.
while (cont <= 40) {
if (cont != 33 && cont != 37) {
mostra(cont);
}
cont = cont + 1
}
Se você tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!