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

Poderiam ajudar, por favor?

Olá! Não consigo entender o porquê do programa continuar imprimindo todos os números. Eis o código:

<meta charset="utf-8">
<script>
    function pulaLinha(){
        document.write("<br><br>");
    }
    function mostra(frase){
        document.write(frase);
        pulaLinha();
    }
    var n=30;
    while (n<=40){
        mostra(n);
        n=n+1;        
         } if(n==33 && n==37) {
    mostra(" ");
    }
    mostra("FIM.");

</script>

Desde já agradeço!

4 respostas
solução!

E ai Rodrigo, blz?

Todos os números estão sendo impressos devido ao fato do if estar fora do while, outro ponto que você pode avaliar é: o n nunca será igual a 33 e 37 ao mesmo tempo, ou seja, para fazer o que você quer em um único if, utilize o operador lógico || (ou), caso ainda não tenha aprendido, faça a verificação em mais de um if.

Espero ter ajudado!

A forma prática que eu achei pra resolver foi testar a diferença dentro do while.

    while (n<=40){
        if(n != 33 && n != 37 ){
            mostra(n); 
        }
    n = n + 1;
    }   

Desta forma o teste lógico dentro de if sempre será true exceto se n == 33 e n ==37.

Obrigado, Mateus e Gerciley!

Fala Rodrigo, que bom que resolveu o seu problema :)

Vou fechar esse tópico aqui, ok?

Qualquer coisa é só abrir outro.