Comunidad de diseño web y desarrollo en internet

Como se usa Switch y diferencias con if

Citar            
MensajeEscrito el 06 May 2005 02:37 pm
Estoy siguiendo un libro que me compre para aprender algo de Action Script y no consigo entender del todo como se usa switch ni que diferencias hay entre switch y if, serian tan amables de explicarmelo. Les estaría muy agradecido

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2005 03:06 pm
muy facil:

Código :

switch (numero) {
  case 1:
    trace ("el numero vale uno");
    break;
  case 2:
    trace ("el numero vale dos");
    break;
  case 3:
    trace ("el numero vale tres");
    break;
  default:
    trace ("No vale ni 1 ni 2 ni 3");
}


es lo mismo q

Código :

if(numero==1)
{
    trace ("el numero vale uno");
}

if(numero==2)
{
    trace ("el numero vale dos");
}
if(numero==3)
{
    trace ("el numero vale tres");
}

if(numero!=1 && numero!=2 & numero!=3)
{
    trace ("el numero no es 1 2 ni 3");
}


El switch se utiliza cuando una variable puede tomar uno de varios valores posible

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 06 May 2005 04:34 pm
La segunda, la del if, no se puede poner con else if??? Entonces se pueden usar los dos indistintamente y dan el mismo resultado???

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2005 04:37 pm
lo de usar else...if ya iria segun la lógica de lo q se quiera hacer.

Y pues si, se puede usar cualquiera de los dos, pero el switch, repito, se usa cuando para evaluar una variable q puede tomar un valor de n posibles. Por ejemplo, para una variable q puede ser 1 o 0, no se justifica el switch

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 06 May 2005 04:38 pm
creo q lo que david intento es modelar el switch con el if, veras las sentencias se usan en distintos casos, si tienes muchos valores posibles es recomendable que uses un swicth sino tienes pocas (2 o 3 a lo maximo) usas if y else, ¿porque? por que cuando usas switch va directamente al case que corresponde en cambio si usas if else tiene que comparar con cada una hasta que consiga la que es.

Saludos.......

Por Prozac

SWAT Team

1547 de clabLevel

1 tutorial

Genero:Masculino   SWAT

donde se regresa el viento

firefox
Citar            
MensajeEscrito el 06 May 2005 04:40 pm
claro se pone else if o sino puede llegar entrar en varios if quedaroa algo asi yel else solo cumple la funcion del default

if(numero==1){
trace ("el numero vale uno");
}else if(numero == 2){
trace ("el numero vale dos");
}else if(numero == 3){
trace ("el numero vale tres");
} else{
trace ("no hay numero");
}

Por hackjasl

72 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 May 2005 04:53 pm
Ok comprendo, por lo que decis puden hacer lo mismo pero con el switch escribes menos codigo que con if y else if
No???

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2005 05:05 pm

hackjasl escribió:

claro se pone else if o sino puede llegar entrar en varios if quedaroa algo asi yel else solo cumple la funcion del default

if(numero==1){
trace ("el numero vale uno");
}else if(numero == 2){
trace ("el numero vale dos");
}else if(numero == 3){
trace ("el numero vale tres");
} else{
trace ("no hay numero");
}


son innecesarios esos else if

en el ejemplo q puse, no es posible q entre "a varios if" (no puede valer 1 y 2 al tiempo no?

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 06 May 2005 05:58 pm
El else es para reducir tiempo de proceso.

Mientras en el tuyo _david Pregunta por todos los IF si es igual, en el otro solo va preguntando, si no ha sido igual. SI lo encuentra ya no sigue preguntando.

Código :

if(numero==1)//Si es uno, seguira preguntando. Si es dos o tres, etc
{
    trace ("el numero vale uno");
}
trace("Verifica si es 2");
if(numero==2)
{
    trace ("el numero vale dos");
}
trace("Verifica si es 3");
if(numero==3)
{
    trace ("el numero vale tres");
}
trace("Verifica si no es 1, 2 ó 3");
if(numero!=1 && numero!=2 & numero!=3)
{
    trace ("el numero no es 1 2 ni 3");
} 


Ahora con el else, solo ira preguntando si no lo encuentra:

Código :

if(numero==1){//Si es uno, se salta hasta donde dice: //aqui
trace ("el numero vale uno");
}else if(numero == 2){
trace ("el numero vale dos");
}else if(numero == 3){
trace ("el numero vale tres");
} else{
trace ("no hay numero");
}
//Aqui


Finalmente, como bien dicen, para eso es el switch(para esos casos). Y por eso en el switch, en cada respuesta usan el break, si no lo usan, seguira preguntando si es igual a los demas valores. :wink:

Por Dano

BOFH

4271 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.