• Lunes 23 de Diciembre de 2024, 00:18

Autor Tema:  Sobre Switch ..... Principiante Xd  (Leído 2087 veces)

Blizknight

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Sobre Switch ..... Principiante Xd
« en: Domingo 30 de Abril de 2006, 19:29 »
0
Hola a todos bueno .. leyendo un poco de switch .... no se si lo entendi bien .... pero switch solo trabaja con valores  numericos ??
o sea

   
Código: Text
  1. switch(sexo){
  2.       case 1:
  3.         cat = "mujer";
  4.         break;
  5.       case 0:
  6.         cat ="hombre";
  7.          
  8.                                  }
  9.  

alguien me ayuda a entender esto ... mas claro ... o sea si se como usarlo solo que en lo que lei solo me daban ejemplos como una casilla donde se pone un numero .... y si el numero es 2 me sale febrero.. si es 3 marzo y asi sucesivamente. ... es un poco mas limitado que el if ??? .. que otras cosas mas puedo hacer ??? no es lo mismo que un else if ???
saludos

jotaBKM

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Sobre Switch ..... Principiante Xd
« Respuesta #1 en: Domingo 30 de Abril de 2006, 20:14 »
0
hola:  :D

el switch te compara un tipo de variable ya sea int, String.length ,etc...
los case se refieren a que en caso de que la variable que estas evaluando sea verdadero se ejecutara y puedes salir de el con un break ... ademas el switch tiene un default que hace que si ninguno de los posibles case se ejecuten ejecutara el default ... me parec q lo puedes usar como excepcion aunque na q ver con excepcion ...

eso me imagino que querias... saludos

  :smartass:  :smartass:  :smartass:

Blizknight

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Re: Sobre Switch ..... Principiante Xd
« Respuesta #2 en: Domingo 30 de Abril de 2006, 21:58 »
0
sip ya ta mas claro tambien puedo igualar el case asi ?:

Código: Text
  1. switch(sexo){
  2.       case masculino:
  3.         cat = "a";
  4.         break;
  5.       case femenino:
  6.         cat ="b";
  7.          
  8.  

Masiosare

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Sobre Switch ..... Principiante Xd
« Respuesta #3 en: Lunes 1 de Mayo de 2006, 03:21 »
0
Pero switch() no opera sobre clases, como sería el caso de String, no recuerdo cual pero marca error al momento de compilar. No sé si es lo que están proponiendo, pero no se puede hacer esto:


Código: Text
  1.     
  2.      String cadena="masculino";
  3.      int sexo=0;
  4.  
  5.      switch (cadena)
  6.        {
  7.          case "masculino":
  8.           {
  9.            sexo=1;
  10.            break;
  11.           }
  12.          case "femenino":
  13.           {
  14.            sexo=2;
  15.            break;
  16.           }
  17.         default:
  18.          sexo=3;    */El código para "default" no necesita "break" por que ya es el final de la estructura. /*
  19.        }
  20.  
  21.  
  22.  
 

      Más bien quería mencionarlo por que no lo habían comentado. Es más, yo en algún lugar leí lo mismo que Blizknight, creo que no opera sobre chars pero no estoy seguro, lo checaré.

 :hola:


   P.D.: Opps, se me olvidaba, si puedes comparar objetos Switch con la instrucción if sin problemas.

-----------------------------------------------------------------------------------------------

    Ya experimenté con los tipos de datos primitivos. Sólo funciona con los tipos enteros (incluido char), con los tipos decimales devuelve un error de posible pérdida de presición (y no me creo la clase), y con booleano (así como con los objetos) me devuelve "tipo de dato incompatible (se requiere int)". Los errores los devuelve en tiempo de compilación.

 :comp:
El experto es aquel que sabe cada vez más sobre cada vez menos, hasta que sabe competamente todo sobre absolutamente nada.
[size=109]Ley de Murphy[/size]

Blizknight

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Re: Sobre Switch ..... Principiante Xd
« Respuesta #4 en: Lunes 1 de Mayo de 2006, 06:18 »
0
bueno creo que ya entendi ... yo queria poner algo asi .... si el case era tal palabra ... que haga lo sgt XD... pero con eso creo que no se puede ....

** 1 **por cierto para extraer un dato string ... seria .... datos = dato.getText();
.. soy principieante XD :hola:  :P

** 2 **y bueno sobre lo del switch solo trabaja con numeros ????
si es 1 tal cosa si es 2 la sgt ... o en el caso que no sea numero seria el uso de combox que es lo mas logico no ? ... donde se ve texto pero se elije con numeros .....
pero me acaban de decir que se puede cambiando la sintaxis aunque no entendi como ... a ver si me dan una manito ...

** 3 **y para sacar el caption de un combox .... como se hace ????
** 4 ** como comparo usando ifs en el switch ??? tienes un ejemplo }xD(si se usar if)

pd: enumere las preguntas XD

Masiosare

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Sobre Switch ..... Principiante Xd
« Respuesta #5 en: Martes 2 de Mayo de 2006, 00:06 »
0
Citar
como comparo usando ifs en el switch ??? tienes un ejemplo }xD(si se usar if)

Creo que te debes de referir a este comentario:

Citar
sí puedes comparar objetos Switch con la instrucción if sin problemas.

Oops. Me equivoqué, debí poner "String" en lugar de "Switch" (Te estoy confundiendo, en lugar de aclararte las cosas). A lo que me refería es que al usar if en lugar de Switch no te genera error. Este código es equivalente al que puse en el post anterior, y Java lo compila sin problemas:

Código: Text
  1.  
  2.        String cadena="masculino";
  3.         int sexo=0;
  4.  
  5.        if (cadena=="masculino")  // case "masculino"
  6.        {
  7.          sexo=1;
  8.        }
  9.       else
  10.        {
  11.          if (cadena=="femenino") //case "femenino"
  12.           {
  13.             sexo=2;
  14.           }
  15.          else     //Este último "else" equivale al "default"
  16.           {
  17.             sexo=3;
  18.            }
  19.        }
  20.  
  21.  

Para los compiladores, en muchos lenguajes (por no decir todos) la instrucción switch (en otros lenguajes se llama "select") es equivalente a "if's" anidados, sirve más bien para dar legibilidad a los códigos. Qué yo sepa, sólo Java tiene esta restricción de usar sólo números enteros.
El experto es aquel que sabe cada vez más sobre cada vez menos, hasta que sabe competamente todo sobre absolutamente nada.
[size=109]Ley de Murphy[/size]

Blizknight

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Re: Sobre Switch ..... Principiante Xd
« Respuesta #6 en: Martes 2 de Mayo de 2006, 01:26 »
0
entonces estube en lo correcto con que switch trabaja mas con datos numericos ?? ......y no se si respondiste la pregunta 1 2 y 3 ... XD ... si no es muxa molestia ...  :hola:

Masiosare

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Sobre Switch ..... Principiante Xd
« Respuesta #7 en: Martes 2 de Mayo de 2006, 02:05 »
0
Citar
** 1 **por cierto para extraer un dato string ... seria .... datos = dato.getText();
.. soy principieante XD :hola:  :P

No entiendo la pregunta. Si te refieres a extraer un String de un componente GUI (campo de texto, combobox, listbox, etc), sí, es con getText().

     Para la segunda pregunta. Sí sirve utilizar el combobox cuando el dato a compara es introducido por el usuario. Pero cuando el dato a comparar es el resultado de un cálculo se vuelve muy complicado. Creo que lo más fácil para todos los casos lo más fácil es el usar los "if's" anidados.

     Para extraer el texto de la opción seleccionada, prueba con el método getSelectedItem(), y para extraer el texto de una opción determinada usa el método getItem(int index).
El experto es aquel que sabe cada vez más sobre cada vez menos, hasta que sabe competamente todo sobre absolutamente nada.
[size=109]Ley de Murphy[/size]

Blizknight

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Re: Sobre Switch ..... Principiante Xd
« Respuesta #8 en: Martes 2 de Mayo de 2006, 03:50 »
0
oh oks ya tengo mas claras mis dudas ... XD
y lo de getselectedindex si me lo sabia solo no sabia como extraer el texto que contenia ... el seleccionado ..
ahora voy a probar este getItem(int index).

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Sobre Switch ..... Principiante Xd
« Respuesta #9 en: Martes 2 de Mayo de 2006, 04:40 »
0
otro motivo mas para pasarce a .NET.


en .NET si puedes hacer switch con strings.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io