9
respostas

Estrutura else if

Boa noite. Eu ainda tenho um pouco de dúvida sobre como escrever a estrutura de else if, no curso anterior tem o exemplo da segunda imagem e agora no exercício com uma pequenina diferença. Gostaria de entender melhor quais as formas possíveis corretas de se escrever, grata.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

9 respostas

Oi, Jordana!

Na primeira imagem você tem três possibilidades que resultarão em três resultados diferentes:

  1. o número é maior que zero -->> o programa printa uma mensagem que diz que o número é positivo;

  2. ou então ele é menor que zero -->> programa printa mensagem que diz que o número é negativo;

  3. se não é maior nem menor que zero, ele é igual a zero -->> printa mensagem que diz que o número é zero

Já na segunda imagem, você primeiro analisa duas condições:

  1. o chute é igual ao número secreto -->> programa printa mensagem dizendo que a pessoa descobriu o número secreto;

  2. o chute é diferente do número secreto . Neste caso o programa não vai "executar uma ação" diretamente, ele vai fazer uma nova verificação para saber qual mensagem vai printar na tela:

    2.a) se o chute for maior que o número secreto -->> imprime mensagem que diz que o número secreto é menor que esse número (chute);

    2.b) para outros casos (chute menor que o número secreto) -->> imprime mensagem que diz que o número secreto é maior que esse número (chute)

Embora a lógica da primeira imagem atenda o caso resolvido no exercício da segunda imagem, acredito que a lógica seja a escolhida porque nesse exercício do número secreto, quando se acerta o número o programa mostra a mensagem de que a pessoa acertou e é encerrado, então é legal tratar logo isso, quando o caso acontecer, e sair da função. Como tanto para chute menor ou maior que o número secreto o programa continua sendo executado, fica mais simples deixar essas duas condições dentro de um else e não com else if / else separados.

Se algo não for entendido, não hesite em perguntar, tá bom?

. . .

Se esta resposta te ajudou, favor, marcar como solucionado ✓.

Bom dia Thatiana, obrigada pelas explicações, mas não é exatamente essa a minha dúvida. A minha dúvida se refere literalmente a estrutura else if e como compor ela, escrever corretamente na ordem, levando em consideração as linhas que elas têm de estar e chaves que devem complementar. O exemplo 1, o else if estão lado a lado após a chave, o exemplo 2 o else if está assim else { if (o if na linha de baixo), fazendo uma cascata. Gostaria de entender melhor acerca dessas possibilidades. Aparentemente as duas estão corretas, pois funcionam, no entanto me recordo de tentar fazer ao exercitar e um dia ter ficado errado, provavelmente pq algo ficou fora da ordem, não sei exatamente pq não me recordo, mas enfim, a linha de raciocínio é esta, tentar entender quais as formas corretas de se escrever. Obrigada

Olá, tudo bem?

Acredito que não existe uma forma padrão de usar, e você pode utilizar ambas as formas, pois ambas são funcionais. Em relação às boas práticas, seria mais interessante utilizar o "else if", pois ele fica junto, o que diminuiria o tamanho do código e tornaria mais legível para outro desenvolvedor compreender o que está acontecendo.

Bons estudos para nós!

Oi, Jordana!

O else estar junto (exemplo 1) ou separado do if (exemplo 2) é justamente uma questão de lógica, conforme eu comentei no post anterior.

Mas sempre feche a chave de um if, else if ou else exatamente abaixo da primeira letra desse if, else if ou else por questões de boas práticas de programação. Vai funcionar se você fechar na mesma linha, logo após o ;, porém não é considerado uma boa prática de programação.

Eu confesso que até a chave de abertura eu deixo em linha separada e não ao lado do fechamento do parênteses, conforme é mostrado nos vídeos, mas não é necessário. Faço isso mais porque onde eu programo há regras específicas que me obrigam a codar assim e já acostumei com essa estética que deixa mais fácil para a manutenção do código, mas o que você mais vai ver por aí é como é mostrado no vídeo e segue abaixo.

seguem exemplos:

if (condição) {
    //código
}
else {
    //código
}

ou

if (condição) {
    //código
}
else if (condição) {
    //código
}
else {
    // código
}

ou

if (condição) {
    //código
}
else {
    if (condição) {
        // código
    }
    else {
        //código
    }

vou deixar o link do meu projeto no Github, caso queira dar uma olhada na indentação (essa organização da estrutura do código). https://github.com/thatimoreira/jogo-numero-secreto/tree/main/logica-js-projeto_inicial

Se algo ainda não foi esclarecido e quiser entrar em um dos canais de áudio do Discord da Alura e me chamar, você me acha como Thati Moreira por lá, ok?

. . .

Se esta resposta te ajudou, favor marcar como solucionado ✓.

function verificarNumero(numero) {
  if (numero > 0) {
    console.log("O número é positivo.");
  } else if (numero < 0) {
    console.log("O número é negativo.");
  } else {
    console.log("O número é zero.");
  }
}

Também tinha algumas dúvidas e fui pesquisar no YouTube, Google, Etc... Neste exemplo, a função verificarNumero recebe um número inteiro como parâmetro e exibe uma mensagem no console de acordo com as regras especificadas. Se o número for maior que zero, a mensagem “O número é positivo.” será exibida. Se o número for menor que zero, a mensagem “O número é negativo.” será exibida. Se o número for igual a zero, a mensagem “O número é zero.” será exibida.

Espero que isso ajude!

A diferença entre os exemplos:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

.

.

.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Sua explicação ficou bem melhor detalhada Thatiana. Muito obrigado pela dedicação em ensinar e parabéns!!!

Imagina!

Estamos juntos nessa jornada.

Bom fim de semana e bons estudos!

Se esta resposta te ajudou, favor marcar como solucionado ✓

Olá, Jordana! Tudo bem?

Suas dúvidas foram esclarecidas? Se sim, é importante marcar o tópico como solucionado para não impactar na visibilidade das dúvidas dos demais colegas, ok?

Caso contrário, não deixa de explicar aqui quais dúvidas seguem sobre este tema, ok? Ah, dá uma olhadinha também nesse esquema que coloquei acima que tenta exemplificar a lógica envolvida na diferença entre os dois exercícios.

No primeiro exercício são usados if -> else if e else porque ou o nº é positivo OU ele é negativo OU ele é igual a zero.

já no segundo, ou o nº é igual ao número secreto OU ele é diferente. Quando ele é diferente ou ele é maior OU ele é menor que o nº secreto.

Então a diferença entre eles é que na primeira atividade temos 3 possibilidades de situção distintas entre si, enquando no segundo, num primeiro momento temos duas possibilidades de resultado distintas o chute ser igual OU diferente ao nº secreto. Quando ele é igual, mostramos uma determinada mensagem e o jogo é encerrado, mas quando ele é diferente usamos novamente a estura if e depois um else para analisar SE esse número é maior (para executar uma determinada ação) OU SE ele é diferente (para executar uma outra ação).

. . .

Se esta resposta te ajudou, favor marcar como solucionado ✓