Olá Sandro.
A sua linha linha de racicocínio está quase correta, mas tem uns errinhos aí.
Primeiro, no seu segundo trecho de código vc usou apenas um sinal de igual. Com isso vc está afirmando que o valor é igual a 33, ou igual a 37. Para que o if tenha o resultado esperado, vc deve usar 2 sinais de igual (==). Existe a possibilidade de usar 3 iguais, mas deixa issso mais pra frente.
Em segundo lugar: a condicional 'OU' exibe tanto o primeiro valor (33), quanto o segundo (37).
Vou ilustrar com alguns cenários além dos que vc usou de exemplo:
O código abaixo NÃO mostra 33 nem 37:
if (contador != 33 && contador != 37){
mostra (contador);
}
O código abaixo exibe APENAS os números 33 e 37:
if (contador == 33 || contador == 37){
mostra (contador);
}
O código abaixo não funciona, pois é impossível um número ser igual a 33 e 37 ao mesmo tempo. Esse último pode parecer bobo e desnecessário, mas na vida real vc não vai viver comparando apenas números, por isso eu citei.
if (contador == 33 && contador == 37){
mostra (contador);
}
Por fim, não desista, pois no começo é normal confundir algumas coisas mesmo.
Bons estudos!