[C con Clase] hacer loop con switch

Marco Ibarra guarjol_00 en hotmail.com
Sab Oct 18 07:35:03 CEST 2008


Soy nuevo en C++ y tambien en la lista de correo, estuve buscando la manera de regresar al principio de un switch sin la necesidad de goto (en caso de que exista tal manera), como ejemplo el siguiente codigo:

/********************************************************      
/********************************************************


cout<<"El siguiente programa le permite realizar conversiones de grados Celsius"<<endl;
cout<<"y grados Fahrenheit. Para comenzar:"<<endl<<endl;


      start1:             
      cout<<"Seleccione la escala que desea convertir: " <<endl;
      cout<<"Celsius(1), Fahrenheit(2)." << endl<<endl;

//seleccion de escala y conversion

      int escala;
      float celsius, fahrenheit;      
      cin>> escala;      
     
     start:
      
     switch (escala){ 
     case 1:
           
                     cout<<"Ingrese grados Celsius:"<<endl;
                     cin>> celsius;
                     fahrenheit=celsius*9/5+32;
                     cout<<endl<<endl<<celsius<<" grados Celsius, equivalen a "
                     <<fahrenheit<<" Grados Fahrenheit"<<endl<<endl;
                     break;                 
                     
     case 2:  
                     cout<<"Ingrese grados Fahrenheit:"<<endl;
                     cin>> fahrenheit;                            
                     celsius=fahrenheit-32*5/9;
                     cout<<endl<<endl<<fahrenheit<<" grados Fahrenheit equivalen a "
                     <<celsius<<" Grados Celsius"<<endl<<endl;
                     break;
                            
     default:
           
            cout<<endl<<"Seleccion incorrecta, ingrese una opcion valida."
            <<endl<<"Celsius(1), Fahrenheit(2)";
            cout<<endl<<endl;
            cin>>escala;
            goto start;
            }
            
//repetir o salir del programa

            char rep;
            cout<<endl<<"Desea realizar otra operacion?"<<endl;
            cout<<"Presione (r)para repetir, o cualquier tecla para salir."<<endl<<endl;
            cin>>rep;
            
            if (rep == 'r')
                         goto start1;                         
                         
            else {
                 cout<<endl<<endl<<endl
                 <<"****Gracias por utilizar este programa, Hasta luego!!****"<<endl;
                 }
            
      
      cin.get();
      cin.get();
      return 0;
}

Al parecer el codigo ya compilado funciona tal como deveria, pero no dejo de pensar en goto.

Gracias de antemano, Marco Ibarra.


Más información sobre la lista de distribución Cconclase