Ao invés de criar mais variáveis e criar mais um "if" para testá-las, não posso simplesmente sair com um "return"???
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Ao invés de criar mais variáveis e criar mais um "if" para testá-las, não posso simplesmente sair com um "return"???
Fala aslobo, tudo bem ?
O return statement é utilizado no contexto de funções. Simbolizando uma saída da execução da função, podendo devolver um valor pra quem invoca a função ou não.
Não entendi muito bem o contexto/exemplo onde você está tendo a dúvida, mas a ideia do return é essa. Se possível coloque o exemplo onde você está praticando, aí da pra ter mais detalhes.
Espero ter ajudado. Abraço !
Seguindo o código do exemplo, eu posso, ao invés de escrever
var pesoEhValido = true;
var alturaEhValida = true;
if(peso <= 0 || peso >= 300){
console.log("Peso inválido!!")
pesoEhValido = false;
}
if(altura <= 0 || altura >= 3.0){
console.log("Altura inválido!!")
alturaEhValida = false;
}
if(pesoEhValido && alturaEhValida){
tdImc.textContent = calculaImc(peso, altura);
}
Não poderia fazer isso
if(peso <= 0 || peso >= 300){
tdImc.textContent ="Peso inválido!!";
return;
}
if(altura <= 0 || altura >= 3.0){
tdImc.textContent = "Altura inválido!!";
return;
}
tdImc.textContent = calculaImc(peso, altura);
Fala aslobo, tudo bem ?
Não é possível escrever o return nesse contexto, isso resulta no erro: Uncaught SyntaxError: Illegal return statement. O statement return deve ser usado dentro do escopo de funções apenas, e não para estruturas como if/switch-case ou while/for.
No caso do seu programa, se você tem a intenção de parar a execução imediatamente após informar peso ou altura inválidos, você pode usar o else para o if:
var pesoEhValido = true;
var alturaEhValida = true;
if(peso <= 0 || peso >= 300){ // caso esse if seja executado os demais não serão, pois são casos contrários ao teste
console.log("Peso inválido!!")
pesoEhValido = false;
} else if (altura <= 0 || altura >= 3.0){ // caso o primeiro if seja falso, testa este if, como possível caso alternativo // se ele for executado, o else logo abaixo não será, pois é um novo caso contrário a este
console.log("Altura inválido!!")
alturaEhValida = false;
} else { // só será executado caso os dois ifs anteriores falharem
tdImc.textContent = calculaImc(peso, altura);
}
E nesse caso, poderia até dispensar o uso das variáveis que determinam validade (a não ser que as use para outros fins):
if(peso <= 0 || peso >= 300){
console.log("Peso inválido!!")
} else if (altura <= 0 || altura >= 3.0){
console.log("Altura inválido!!")
} else {
tdImc.textContent = calculaImc(peso, altura);
}
Espero ter ajudado. Abraço!