1
resposta

Dúvidas

Bom dia, resolvi o exercício da seguinte forma:

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

  1. Notei que se o dia não for escrito exatamente da mesma forma estipulado no IF (com acento ou com a primeira em maiúscula) ele retorna o resultado como FALSE, exibindo a mensagem de "Boa Semana", mesmo que a entrada de dados tenha sido Sábado ou Domingo. Como resolver isso?
  2. Pesquisando, utilizei duas condições diferentes no mesmo IF utilizando "|" separando as duas condições. Vi que o pessoal utilizou um "else if" para criar uma nova condição. Qual a diferença entre essas duas formas? Existe uma mais indicada?

Obrigado

1 resposta

Bom dia,

  1. Sim, o texto tem que estar exatamente igual com a comparação. Seja em acentos ou em maiúsculo ou minúsculo. Um jeito de melhorar para o caso das maiúsculas ou minúsculas é transformar o texto que veio e o da comparação em maiúsculas através da função toUpperCase(). Assim ele sempre compara o texto com mesmas letras. Sobre o acento a solução mais simples seria mesmo deixar uma comparação com e sem acento caso o usuário digite errado.
  2. No caso, use dois pipes ao invés de um só "||" ao invés de "|". Ele é usado para representar um "OU". Ou seja, caso o dia da semana seja igual a 'Sábado' OU igual a 'Domingo', ele vai entrar na condição. A diferença não é muito grande no else if, para entrar no else if ele precisa falhar a condição anterior, então é um jeito de verificar separadamente Sábado ou Domingo. Usando o operador OU vc consegue checar isso na mesma condição.

OBS: O uso de só um pipe (o "|") é mais usado para operações em bit, embora ainda funcione para condições mas não é recomendado, então sempre use "||" quando for fazer condições com OU.