Foros del Web » Programando para Internet » Javascript »

Consejo con switch please!

Estas en el tema de Consejo con switch please! en el foro de Javascript en Foros del Web. Estab empollando un poco el javascript y cree un programa que pide que introduzcas tres numeros y luego te los ordena de menor a mayor: ...
  #1 (permalink)  
Antiguo 24/02/2011, 03:49
 
Fecha de Ingreso: octubre-2010
Mensajes: 26
Antigüedad: 13 años, 6 meses
Puntos: 1
Consejo con switch please!

Estab empollando un poco el javascript y cree un programa que pide que introduzcas tres numeros y luego te los ordena de menor a mayor:


<html>
<head>
<title>Problema</title>
</head>
<body>

<script language="javascript">
function menor(x1,x2,x3){
if (x1<x2 && x2<x3){
document.write(x1 + " " + x2 + " " + x3)}
if (x2<x3 && x3<x1){
document.write(x2 + ' ' + x3 + ' ' + x1)}
if (x2<x1 && x1<x3){
document.write(x2 + ' ' + x1 + ' ' + x3)}
if (x3<x2 && x2<x1){
document.write(x3 + ' ' + x2 + ' ' + x1)}
if (x1<x3 && x3<x2){
document.write(x1 + ' ' + x3 + ' ' + x2)}
if (x3<x1 && x1<x2){
document.write(x3 + ' ' + x1 + ' ' + x2)}
}
x1=prompt("Introduce un número:")
x1=parseInt(x1)
x2=prompt("Introduce un número:")
x2=parseInt(x2)
x3=prompt("Introduce un número:")
x3=parseInt(x3)
menor(x1,x2,x3)
</script>

</body>
</html>


Weno el parseInt sobra :P ejeje, da igual, mi pregunta es, si quiero convertir los if en un switch, como lo hago??
Yo lo he montado así, me pide los numeros, pero luego no me los recoge y ordena, no muestra nada... Alguna mente superior me puede ayudar? thanks


<html>
<head>
<title>Problema</title>
</head>
<body>

<script language="javascript">
function menor(x1,x2,x3){
switch {
case x1<x2 && x2<x3:
document.write(x1 + " " + x2 + " " + x3)
break
case x2<x3 && x3<x1:
document.write(x2 + ' ' + x3 + ' ' + x1)
break
case x2<x1 && x1<x3:
document.write(x2 + ' ' + x1 + ' ' + x3)
break
case x3<x2 && x2<x1:
document.write(x3 + ' ' + x2 + ' ' + x1)
break
case x1<x3 && x3<x2:
document.write(x1 + ' ' + x3 + ' ' + x2)
break
case x3<x1 && x1<x2:
document.write(x3 + ' ' + x1 + ' ' + x2)
break
}
}
x1=prompt("Introduce un número:")
x1=parseInt(x1)
x2=prompt("Introduce un número:")
x2=parseInt(x2)
x3=prompt("Introduce un número:")
x3=parseInt(x3)
menor(x1,x2,x3)
</script>

</body>
</html>
  #2 (permalink)  
Antiguo 24/02/2011, 04:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Consejo con switch please!

buenas...

no se si es que estas buscando una solucion a un problema o si solo estas haciendo practica con sentencias de javascript. en w3schools tienes un ejemplo de como se utilizan. por una parte, fijate que aunque puedes utilizar expresiones en los cases, switch no determina si evaluar un bloque u otro tal como lo haria un condicional if. es decir, un condicional if se evalua si la condicion resulta ser true, mientras que en switch el case se evalua si un argumento es igual a uno de los casos. en tu caso, las expresiones de los cases evaluan a un boolean el cual seguramente sera distinto al argumento pasado en switch. para que tengas una idea de lo que quiero señalar, el siguiente ejemplo interpreta default porque n no es igual a true ni false.

Código:
var n = 3;
switch(n){
case n < 5:
console.log("<5"); break;
case n > 5:
console.log(">5"); break;
default: console.log("==5"):
}
en ese mismo ejemplo, si en switch pasaras un boolean -true o false- se evaluaria uno de los dos casos. por otro lado, hay mejores alternativa para ordenar los numeros. introducelo en un array e utiliza la funcion sort.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 24/02/2011, 04:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 26
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Consejo con switch please!

AAHHH!! claro es verdad jeje, no habia caido....
Gracias colega, y si no es un problema solo estaba jugueteando un poco para aumentar los conocimientos thanks

Etiquetas: consejo, switch
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 22:48.