4
respostas

A lógica é a mesma do meu programa e do programa do instrutor?

Olá

Existe alguma diferença na lógica que usei para resolver o problema do que a lógica que o instrutor usou? O código está um pouco diferente, mas o resultado é o mesmo.

*Detalhe que decidi destacar os números "excluídos", para ficar mais fácil de indentificar se acertei o programa, ao invés de correr a lista buscando pela falta dos números toda vez.

<meta charset="utf-8">

<script>

    function pulaLinha() {

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

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    var numero = 30

    while(numero <=40) {

        if (numero != 33) {
            mostra(numero);
        } else {
            mostra("<h1>" + numero + "</h1>")
        }

        if (numero != 37) {
            mostra(numero);
            numero = numero + 1;
        } else {
            mostra("<h1>" + numero + "</h1>")
            numero = numero + 1;
        }
    }


    mostra("FIM");
</script>
4 respostas
<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }
    var numero = 30;
    while(numero <= 40){
        if(numero == 33 || numero == 37){
            numero = numero + 1;
        }
        mostra(numero);
        numero = numero + 1;
    }
    mostra("FIM!!!");
</script>

Eu fiz assim este exemplo com o código um pouco diferente, o seu código creio que está falhando só na parte onde ela ainda mostra os números 33 e 37 antes de destacá-los e no caso eram para ser omitidos.

Bem mais conciso! Deixe-me perguntar uma coisa:

if(numero == 33 || numero == 37)

Qual a funcionalidade do item "||" no código?

Sim, para o exercício proposto eu errei, mas foi intencional mostrar os números 33 e 37 em destaque, para corrigir é só remover a parte do código:

} else {
            mostra("<h1>" + numero + "</h1>")
            numero = numero + 1;

É uma expressão Booleana OU /OR que no caso no meu código, ela vai executar a ação dentro do bloco se uma condição ou a outra for verdadeira, ela é diferente de "&&" onde essa expressão E/AND significa que a ação dentro do bloco só é executada se as duas condições forem verdadeiras. Se eu trocar o "||" por "&&" provavelmente o console vai acusar um erro de expressão ou executar tudo sem passar pela condição.

Obrigado!