Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Ainda sobre a lógica do operador "E" ao invés do "OU"

Eu entendi a explicação que precisa ser True e True para mostrar o número, ou seja, quando escrevemos:

if (contador != 33 && contador != 37){
    mostra (contador);
}

O sistema só exibirá os números que não forem o 33 nem o 37, mas em alguns casos podemos querer o "OU". Por exemplo, se eu quisesse ao contrário, mostrar somente o 33 ou 37. Neste caso eu teria que usar o operador "ou" (||). Mais ou menos assim:

if (contador= 33 || contador = 37){
    mostra (contador);
}

Estou correto?

3 respostas
solução!

Olá, exatamente, dessa forma mostraria o 33 ou o 37 apenas, só o código deveria ficar assim:

if ( contador == 33 || contador == 37 ) {
    mostra (contador);
}

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!

Obrigado, pessoal. Ficou claro agora.