Olá novamente, Rodrigo!
Vamos analisar passo a passo o primeiro código que você mandou:
var contador = 30
while (contador <= 40) {
contador = contador + 1
if (contador != 33 && contador != 37) {
mostra('O próximo número é ' + contador)
}
}
pulaLinha()
mostra('FIM')
Primeiro será executada a instrução var contador = 30
. Logo depois entraremos no bloco while
pela primeira vez, sendo feita a verificação contador <= 40
, que será satisfeita. Em seguida, é executada a instrução contador = contador + 1
, fazendo com que contador
fique com valor 31.
Depois entramos na verificação if (contador != 33 && contador != 37)
, que será satisfeita, já que 31 não é igual a 33 e também não é igual a 37!
Veja bem, para que a expressão inteira dentro desse if
seja verdadeira, precisamos que as expressões contador != 33
e contador != 37
sejam ambas verdadeiras! Uma expressão com o operador de desigualdade !=
é avaliada como true
(verdadeira) se os números que estão sendo comparados forem, de fato, diferentes!
Então, como nós sabemos que 31 é diferente de 33 e que 31 também é diferente de 37, a expressão será avaliada de acordo com o seguinte passo a passo:
(contador != 33 && contador != 37)
(true && true)
(true)
Dessa forma, a expressão inteira é avaliada como true
e o código dentro do bloco if
é executado! Ou seja, será executada a instrução mostra('O próximo número é ' + contador)
e será imprimido na página "O próximo número é 31".
Assim, chegamos ao fim do bloco while
e retornamos a verificar a condição contador <= 40
, e assim por diante para todos os próximos números. Apenas quando a variável contador
tiver valor 33 ou 37, o código dentro do bloco if
não será executado!
Por exemplo, digamos que contador
esteja com valor 33, a condição do bloco if
será avaliada assim:
(contador != 33 && contador != 37)
(false && true)
(false)
Já que a expressão contador != 33
não pôde ser satisfeita, então o código dentro do if
não será executado e não será mostrada a frase "O próximo número é 33"!
Agora analisando o último código que você mandou:
while (contador <= 40) {
contador = contador + 1
mostra('O próximo número é ' + contador)
if (contador != 33 && contador != 37) {
}
}
A primeira coisa que podemos observar é que temos um bloco if
com nenhum código dentro! Então ele não está fazendo diferença ali, pois mesmo que a condição (contador != 33 && contador != 37)
seja satisfeita, não haverá nenhum código para ser executado. E se a condição não for satisfeita, o if
é simplesmente ignorado. Então o código acima é o equivalente ao abaixo:
while (contador <= 40) {
contador = contador + 1
mostra('O próximo número é ' + contador)
}
Ou seja, você está apenas fazendo um loop normal! Serão mostrados na tela os números 31 a 41!
Espero ter tirado suas dúvidas! Se ainda tiver ficado com alguma, pode nos chamar! Bons estudos! :)