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

Porque este código não funciona ?

var contador = 30;
    while(contador <= 40) {

if( contador == 33 && contador == 37) {
        contador = contador + 1;
        }
4 respostas
solução!

E aí, João!

O código não funciona porque esse if exige que ele seja 33 e 37 ao mesmo tempo por estar utilizando &&, que significa que ambas as condições devem ser válidas pra funcionar. Como um número jamais pode ser 33 e 37 ao mesmo tempo, esse if jamais retornará true.

Ao invés de utilizar &&, você pode utilizar ||, que significa ou, e retornará true desde que pelo menos uma das condições seja verdadeira, no caso sendo 33 ou 37.

Você pode também utilizar <= ou >= no lugar do ==, mas isso depende do que você pretende fazer.

Colocando na prática:

O código abaixo jamais será verdadeiro, pois o número não pode ser 33 e 37 ao mesmo tempo:

if( contador == 33 && contador == 37)

O código abaixo será verdadeiro se o número estiver entre 33 e 37, incluindo os próprios 33 e 37:

if( contador >= 33 && contador <= 37)

O código abaixo será verdadeiro se o número estiver entre 33 e 37 não incluindo os próprios 33 e 37:

if( contador > 33 && contador < 37)

O código abaixo será verdadeiro se o número for 33 ou 37:

if( contador == 33 || contador == 37)

Existem outras opções ao trabalhar com condições, mas a princípio você pode ir testando essas.

Espero ter ajudado, bons estudos!

Entendi, existe algum curso aqui na alura que eu entro em contato com todos esses comandos já de cara (como uma apostila) ou na medida que vou avançando nos cursos básicos, vou conhecendo a maioria/mais usáveis? Sou novo nessa área e já estou curtindo :D

Os dois cursos de lógica de programação já incluem os comandos mais básicos, e a partir daí você pode ir pra conteúdos mais aprofundados, dependendo da área que quer seguir.

Sobre apostilas, você pode dar uma olhada nas que a Caelum disponibiliza.

Como Alura e Caelum fazem parte do mesmo grupo, você está em casa :)

Olá João, tudo bem? Como sua dúvida foi solucionada, estou fechando o tópico, ok?

Qualquer coisa não hesite em abrir outro tópico :)