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

Dúvida na convenção de código

O código funciona, mas a minha dúvida é se o raciocínio de usar o || pode me trazer problemas em outros exemplos. Vi que muitas das soluções trazidas aqui usam o &&

<meta charset="UTF-8">
<script>

    function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    var contagem = 30;

    while (contagem <= 40){
        if (contagem == 33 || contagem == 37) {
            contagem += 1;
        }
        mostra(contagem);
        contagem += 1;
    }
    mostra("Fim");
</script>
2 respostas
solução!

Bom dia, Michelle! Tudo bem?

Os operadores || e && são operadores lógicos. Eles servem para testar se duas ou mais expressões são verdadeiras ou não.

O operador ||, que você usou, é conhecido como "OR" (ou), ele retorna verdadeiro se pelo menos UMA das expressões fornecidas for verdadeira. Já se você usar o operador &&, conhecido com "AND" (e), vai retornar verdadeiro apenas se as duas forem verdadeiras.

Nesse exercício, faz totalmente sentido usar o || como você fez, pois assim ele vai pular a contagem se chegar no 33 ou no 37, se usasse o && ele só iria pular se fosse a variável contagem fosse 33 e 37 ao mesmo tempo (o que não da pra acontecer). Pode testar trocando pra ver o que acontece no código =)

O uso dos dois depende da situação, vou deixar uma tabelinha de demonstração pra ficar mais claro:


Operador &&, aplicando A && B

Só vai retornar verdadeiro (e fazer o que tem dentro da condição) se as duas expressões forem verdadeiras.

Exemplo realístico, sem ser da programação: hoje vou responder o fórum e ouvir musica. É uma constatação verdadeira, estou fazendo as duas coisas ao mesmo tempo.

ABA e B
verdadeiroverdadeiroverdadeiro
verdadeirofalsofalso
falsoverdadeirofalso
falsofalsofalso

Operador ||, aplicando A || B

Só vai retornar verdadeiro (e fazer o que tem dentro da condição) se alguma das expressões retornarem verdadeiras.

Exemplo realístico, sem ser da programação: hoje vou estudar front-end ou back-end. É uma constatação verdadeira, mesmo se eu estude apenas um deles ou os dois, pois não me comprometi a estudar ambos na frase.

ABA ou B
verdadeiroverdadeiroverdadeiro
verdadeirofalsoverdadeiro
falsoverdadeiroverdadeiro
falsofalsofalso

Espero que tenha ajudado a ficar mais claro sobre esses operadores lógicos =)

Qualquer coisa, pode nos chamar! Bons estudos!

Oi, Mônica! Muito obrigada pela explicação, realmente esclareceu a diferença e como eu deveria pensar neles como verdadeiro e falso. Valeu!