alguien que explique. (sobre switch case)

Iniciado por josco, 14 Octubre 2011, 03:17 AM

0 Miembros y 1 Visitante están viendo este tema.

josco

mi duda es: no puedo comprender porque el switch case necesita un breake para parar ej.


int caso=1;
switch(caso)
{
case 1:
      imrime("caso 1")
case 2:
      imrime("caso 2")
case 3:
      imrime("caso 3")
}


este codigo imprime los tres casos, pero no comprendo porque si se supone que solo quiero que entre el caso 1 ya que caso vale 1, mi pregunta es porque se tiene que pasar a todos los casos?

lo pregunto porque en ocasiones quiero pasar de un case a un determinado case por ejemplo asi:


int caso=1;
int variable;
switch(caso)
{
case 1:
      if(variable == 1)
       caso = 2;
      if(variable == 2){
        caso = 3;
      }
case 2:
      imrime("caso 2");
case 3:
      imrime("caso 3")
}

el codigo anterior impireme caso 2 y caso 3

si le puiera break:


int caso=1;
int variable = 1 o 2; //esta variable la puede cambiar el usuario o el mismo programa en un proceso y deve ser 1 o 2
switch(caso)
{
case 1:
      if(variable == 1){
       caso = 2;
       break;
      }
      if(variable == 2){
        caso = 3;
       break;
      }
case 2:
      imrime("caso 2");
case 3:
      imrime("caso 3")
}


el codigo anterior no haria nada ponindo la variable en 1 o en 2.

:huh: :huh: :huh: :huh: :huh: :huh:

$Edu$

Estas entreverando todo lo que pasa, si dentro de un case vas a verificar que valor tiene una variable entonces simplemente verifica el valor de la variable y listo.

Y el switch creo que funciona tomando el valor de origen, es decir no podes cambiarlo luego como haces vs, pero creo que podias "goto case 2:" o simplemente llamarlo con "case 2" prueba

raul338

por estas razones


// preguntas algo con 3 opciones de respuesta
switch(respuesta) {
    case A:
    case B:
          imprime("Mal");
          break;
    case C:
          imprime("Bien");
          break;
}


Son sutilezas del lenguaje, en Visual Basic (y creo que en Python) no pasa eso  ;D