Tengo un problema, resulta que tengo que hacer un programa en js que consiste en lo siguiente, si el usuario es menor de 18 entonces no sera bienvenido, si el usuario es mayor de 18 o tiene 18 esbienvenido pero no puede tomar en el bar, si el usuario tiene mas de 21 entonces si puede tomar. mi codigo es este y sospecho que es un error de sintaxis o de logica en cuanto a la hora de comparar la edad:
var edad = prompt("Coloca tu edad");
if (edad >= 18 && < 21){
document.write("Bienvenido, pero no puedes embriagarte");
}
else if(edad == 18 >= 21){
document.write("Puedes embriagarte, Bienvenido");
} else {
document.write("you are not welcome")}
no sabes usar logica de argumentos...
edad >= 18 && < 21
">=" es un operador al igual que "<"... ellos toman ambas partes las comparan y retornan cierto o falso, podrías velos como
function gte(a,b){
return a >= b;
}
function lt(a,b){
return a < b;
}
y en el codigo susituirlo por esa función quedando
if (gte(edad, 18) && lt(, 21)){
quedando algo incoherente no? a lt le falta el primer parametro, 21 no se compara con nadie
ni hablemos de la linea 5
Cita de: engel lex en 11 Febrero 2017, 04:35 AM
no sabes usar logica de argumentos...
edad >= 18 && < 21
">=" es un operador al igual que "<"... ellos toman ambas partes las comparan y retornan cierto o falso, podrías velos como
function gte(a,b){
return a >= b;
}
function lt(a,b){
return a < b;
}
y en el codigo susituirlo por esa función quedando
if (gte(edad, 18) && lt(, 21)){
quedando algo incoherente no? a lt le falta el primer parametro, 21 no se compara con nadie
ni hablemos de la linea 5
Ósea tendría que ser
edad >= 18 && edad < 21
?? :-[
No entendí
Cita de: Mago Diesan en 11 Febrero 2017, 06:17 AM
Ósea tendría que ser edad >= 18 && edad < 21
?? :-[
No entendí
Correcto.
(edad >= 18) && ( ¿_? < 21)
Como en matemáticas.
Cita de: ivancea96 en 11 Febrero 2017, 13:32 PM
Correcto.
(edad >= 18) && ( ¿_? < 21)
Como en matemáticas.
const usuario = 21;
if(usuario == 18){
document.write("PUEDES ENTRAR AL BAR PERO NO TOMAR");
}
else if (usuario >= 18) && (usuario >= 21){
document.write("PUEDES TOMAR")
}
else{
document.write("NO ERES BIENVENIDO")
}
Codepen me muestra un error de sintaxis y no lo entiend bien, tiene que ver con el operador AND
El if necesita paréntesis.
Lo tienes así:
if (usuario >= 18) && (usuario >= 21)
Y debería estar así:
if( (usuario >= 18) && (usuario >= 21) )
Los paréntesis de dentro, en cualquier caso, no son necesarios (puedes ponerlos si quieres por legibilidad, por supuesto. Pero vamos, que los puse para que vieras cómo se desarrollan esas operaciones.
Cita de: ivancea96 en 12 Febrero 2017, 13:40 PM
El if necesita paréntesis.
Lo tienes así:
if (usuario >= 18) && (usuario >= 21)
Y debería estar así:
if( (usuario >= 18) && (usuario >= 21) )
Los paréntesis de dentro, en cualquier caso, no son necesarios (puedes ponerlos si quieres por legibilidad, por supuesto. Pero vamos, que los puse para que vieras cómo se desarrollan esas operaciones.
Muchas gracias, ahora entiendo más