Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: lucas59 en 1 Agosto 2014, 02:51 am



Título: Estructura switch¿?
Publicado por: lucas59 en 1 Agosto 2014, 02:51 am
Hola gente una pregunta. tengo una estructura switch que da 4 opciones yo quiero sabes que tengo que hacer para quee si alguien selecciona una opcion que no este hay te buelva a mostrar las 4 opciones??


Título: Re: Estructura switch¿?
Publicado por: rir3760 en 1 Agosto 2014, 03:49 am
Basta con colocar la sentencia de selección "switch" dentro de un bucle que se repita hasta que la opcion sea valida.

En C y sin validaciones es mas o menos asi:
Código
  1. int opcion;
  2.  
  3. /* ... */
  4.  
  5. do {
  6.   puts("Introduce la opcion:");
  7.   scanf("%d", &opcion);
  8.  
  9.   switch (opcion){
  10.   case 1:
  11.      puts("1");
  12.      break;
  13.   case 2:
  14.      puts("2");
  15.      break;
  16.   case 3:
  17.      puts("3");
  18.      break;
  19.   default:
  20.      puts("Opcion fuera de rango");
  21.      break;
  22.   }
  23. }while (opcion < 1 || opcion > 3);

Y por favor la próxima vez indica el lenguaje de programación que  utilizas.

Un saludo


Título: Re: Estructura switch¿?
Publicado por: Mario Olivera en 4 Agosto 2014, 12:48 pm
 Hola lucas59, sino entiendo mal lo que tendrias que hacer es poner un caso default, y saltar caracteres de tabuladores, para esto después de los case poné estos otros case
Código
  1.  
  2.  
  3. Case: '/t'
  4. Case: '/n'
  5. Break;
  6. Case: default
  7. Cout<<"el caracter no esta en las opiones disponibles\n";
  8. Break;
  9. [ /code]


Título: Re: Estructura switch¿?
Publicado por: leosansan en 4 Agosto 2014, 13:36 pm
Hola lucas59, sino entiendo mal lo que tendrias que hacer es poner un caso default, y saltar caracteres de tabuladores, para esto después de los case poné estos otros case
.............................

;) ;) Sin malos rollos, ¿vale?.   ;) ;)


Lee bien la pregunta y después la acertada respuesta de rir3760.


Un fuerte saludo 718208.