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:
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
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