Ao invés de criar mais variáveis e criar mais um "if" para testá-las, não posso simplesmente sair com um "return"???
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!