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

if sem bloco (Todos os números entre 30 a 40, exceto 33 e 37!)

Boa tarde!

O código abaixo funcionou perfeitamente, porém o if não tem bloco e nem ponto e vírgula no final da linha. Porque ele funcionou? Qual a regra para o uso desta "pontuação"?

<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 && numero != 37)
        mostra(numero);
        numero = numero + 1;
}

mostra("FIM");

</script>
3 respostas

Olá Yuri,

O que acontece nesse caso é que o que vai ser executado caso o if seja verdadeiro é apenas a primeira linha após a declaração, ou seja, apenas a linha mostra(numero);. Já a linha numero = numero + 1; sempre vai ser executada, inclusive quando número for 33 e 37.

Isso é um recurso que algumas linguagens de programação possuem que permite que você não crie um escopo com { } caso o que vai ser executado dentro do if seja apenas uma instrução.

O uso de ; é apenas para instruções, como por exemplo atribuições de valores e chamadas de funções.

Abraços.

Esclarecido, obrigado Vinícius.

Abraço.

solução!

Sem problemas. Como fechamos o caso, você pode marca-lo como solucionado, para que os outros saibam que a pergunta foi esclarecida.

Abraço.