Foros del Web » Programando para Internet » Javascript »

Duda principiante

Estas en el tema de Duda principiante en el foro de Javascript en Foros del Web. Buenas. No entiendo por qué el siguiente condicional en ocasiones no me da el resultado correcto. Código HTML: <script type= "text/javascript" > var edad = ...
  #1 (permalink)  
Antiguo 05/12/2014, 05:57
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 1
Duda principiante

Buenas.

No entiendo por qué el siguiente condicional en ocasiones no me da el resultado correcto.

Código HTML:
<script type="text/javascript">

var edad = 0;
var edadHermano = 0;

edad = prompt('Escribe tu edad');
edadHermano = prompt('Escribe la edad de tu hermano');

if(edad > edadHermano){
document.write('Tu edad es ' + edad + ' y la de tu hermano es ' + edadHermano + '. Eres mayor que tu hermano');
}

else if (edadHermano > edad) {
document.write('Tu edad es ' + edad + ' y la de tu hermano es ' + edadHermano + '. Eres menor que tu hermano');
}

else{
document.write('Tienes la misma edad que tu hermano');
}


</script> 

Esto es lo que obtengo:

Cita:
Tu edad es 34 y la de tu hermano es 121. Eres mayor que tu hermano
  #2 (permalink)  
Antiguo 05/12/2014, 06:07
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 10 años, 4 meses
Puntos: 44
Respuesta: Duda principiante

Es porque no parseas los números como tales. Pasa el valor ingresado por un parseInt, de otra manera será interpretado como un string y la comparación va a fallar.

Código Javascript:
Ver original
  1. edad = parseInt(prompt('Escribe tu edad'), 10);
  2. edadHermano = parseInt(prompt('Escribe la edad de tu hermano'), 10);

Saludos
  #3 (permalink)  
Antiguo 05/12/2014, 06:13
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Duda principiante

Perfecto. Ahora sí funciona.

Muchas gracias.
  #4 (permalink)  
Antiguo 05/12/2014, 06:56
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 10 años, 4 meses
Puntos: 44
Respuesta: Duda principiante

De nada! Recordá marcar el tema como solucionado así no pierden tiempo entrando a ver el problema.

Saludos.
  #5 (permalink)  
Antiguo 05/12/2014, 12:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Duda principiante

Solo para aportar, también puedes usar el operador de suma unaria:

Código Javascript:
Ver original
  1. var a = "5",
  2.     b = "2";
  3.  
  4. console.log(+a + +b); //7

En tu caso, solo harías esto:

Código Javascript:
Ver original
  1. edad = +prompt('Escribe tu edad');
  2. edadHermano = +prompt('Escribe la edad de tu hermano');

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: principiante
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:24.