Foros del Web » Programación para mayores de 30 ;) » C/C++ »

¿Switch infino?

Estas en el tema de ¿Switch infino? en el foro de C/C++ en Foros del Web. Saludos a todos!! Es posible hacer un switch similar al que comparto? El q comparto esta mal y no tengo la mas minima idea de ...
  #1 (permalink)  
Antiguo 14/05/2011, 09:39
 
Fecha de Ingreso: enero-2010
Mensajes: 49
Antigüedad: 14 años, 3 meses
Puntos: 2
¿Switch infino?

Saludos a todos!! Es posible hacer un switch similar al que comparto? El q comparto esta mal y no tengo la mas minima idea de como podría hacer algo similar. Si sabes me dices! Gracias!!

Código C++:
Ver original
  1. switch(seleccion){
  2.  
  3.         for(int i=0; i < contador; i++){
  4.        
  5.         case i: cout << endl;
  6.        
  7.         break;
  8.         }
  #2 (permalink)  
Antiguo 14/05/2011, 17:15
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: ¿Switch infino?

No entiendo lo que quieres hacer... seria bueno que indiques un poco mas lo que quieres hacer para ver si encontramos una mejor solucion.
  #3 (permalink)  
Antiguo 15/05/2011, 08:11
Avatar de latinpower  
Fecha de Ingreso: septiembre-2010
Ubicación: Canelones
Mensajes: 116
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: ¿Switch infino?

¿Querés que el usuario nunca pueda salir del switch o que una opcion dentro del switch se repita de forma indefinida?


Código C++:
Ver original
  1. int  main(){
  2.  
  3. int num;
  4. num = 1; // Para entrar en una opcion del switch
  5.  
  6. do{
  7.     switch(num){
  8.    
  9.                case 1 : cout << "Hola ";
  10.                         break;}
  11.  
  12.                }while(1 < 2); //1 siempre es menor a 2, entonces nunca sale
  13.                
  14.                }


Código C++:
Ver original
  1. int  main(){
  2.  
  3. int num;
  4. num = 1;
  5.  
  6.  
  7.     switch(num){
  8.    
  9.                case 1 :do{
  10.                     cout << "Hola ";
  11.                    
  12.                     }while(1 < 10);
  13.                     break;}
  14.  
  15. }

Ahi en el primero repite todo el switch infinitamente, en el 2do solo una opción

pd: Si no era eso lo que querias avisanos
  #4 (permalink)  
Antiguo 15/05/2011, 09:59
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: ¿Switch infino?

lo que yo pienso que quiere hacer es generar etiquetas case de forma dinamica...pero esto no es posible. por eso le digo que nos diga que quiere hacer.... porque lo que este dentro del case deberia depender de seleccion y de la variable i....se podria hacer asi:


Código C++:
Ver original
  1. for(int i=0; i < contador; i++){
  2.               if (seleccion == i )
  3.                       cout << i << endl;
  4.         }
  #5 (permalink)  
Antiguo 18/05/2011, 16:14
 
Fecha de Ingreso: enero-2010
Mensajes: 49
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: ¿Switch infino?

Muchas gracias a los dos! Basicamente lo que quise hacer es lo que dijo sam90. Les dejo el código para que lo puedan ver y disculpen la tardanza! No usé el switch porque me parece que con el no se puede hacer lo q yo queria.

Es que tengo una lista dinamica y quiero que lo q el usuario escogiera lo fuera igual. No se si este bonito el codigo pero no tengo mucha experiencia programando.

Código C++:
Ver original
  1. i=0;
  2.        
  3.     do{
  4.         cout << "Escriba el número del artículo que desea comprar (-1 si no desea comprar): ";
  5.         cin >> seleccion;
  6.                
  7.         do{
  8.         if(seleccion != -1){
  9.         ya = false;
  10.         seleccion -=1;
  11.        
  12.         while(seleccion > contador){
  13.        
  14.         cout << "Opción invalida, trate con otra: ";
  15.         cin >> seleccion;
  16.         seleccion -=1;
  17.         }
  18.         while(seleccion+1 <= 0){
  19.         cout << "Opción invalida, trate con otra: ";
  20.         cin >> seleccion;
  21.         seleccion -=1;
  22.         }
  23.        
  24.         if (seleccion == i){
  25.        
  26.         cout << "Escriba la cantidad que desea de este artículo: ";
  27.         cin >> cantidad_articulo;
  28.        
  29.             if(cantidad_articulo > inventario[i] && inventario[i] != 0){
  30.                 ya=true;
  31.                     if(inventario[i] != 0)
  32.                         contar_articulos_totales++;
  33.                 total_pagar[contar_articulos_totales] = precio_articulo[i]*inventario[i];
  34.                 cout << "Usted compró " << inventario[i] << " artículo(s)." << endl;
  35.                 cout << "El total de esta compra es $" << total_pagar[contar_articulos_totales] << ".\n";
  36.                 inventario[i] = 0;
  37.             }
  38.             else if(inventario[i] == 0){
  39.                 total_pagar[contar_articulos_totales];
  40.                 ya=true;
  41.             }
  42.             else if(cantidad_articulo < 0){
  43.                 cout << "Opción invalida.\n";
  44.                 ya=true;
  45.                 }
  46.             else {
  47.                 ya=true;
  48.                     if(inventario[i] != 0)
  49.                         contar_articulos_totales++;
  50.                 total_pagar[contar_articulos_totales] = precio_articulo[i]*cantidad_articulo;
  51.                 cout << "Usted compró " << cantidad_articulo << " artículo(s)." << endl;
  52.                 cout << "El total de esta compra es $" << total_pagar[contar_articulos_totales] << ".\n";
  53.  
  54.                 inventario[i] -= cantidad_articulo;
  55.  
  56.                 }
  57.         }
  58.        
  59.         i++;       
  60.         seleccion++;
  61.        
  62.         if(seleccion == i)
  63.         i=0;
  64.        
  65.         }
  66.         }while (ya == false);
  67.     }while ((seleccion != -1));

Etiquetas: switch
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:50.