[C con Clase] hacer loop con switch

Fabian Arenas lordjerhyn en gmail.com
Sab Oct 18 16:11:11 CEST 2008


El 18 de octubre de 2008 2:35, Marco Ibarra <guarjol_00 en hotmail.com>escribió:

> 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.
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>


Bueno ... te mando un saludo de bienvenida ...

concuerdo con lo que dice steven para mi la mejor opcion seria el do-while,
ahora bien ... lo que yo haria en vez de poner una variable booleana, seria
agregar un case n:{ exit(1); }

donde n es un numero ... generalmente el numero de la ultima opcion.... y
por supuesto agregar la opcion SALIR, por si el usuario desea dejar de
ocupar el programa ....

sl2 ... welcome to C++ ....
-- 
Fabian Arenas L.
Estudiante de Ingeniería en Informática. UTEM
Web: http://eterniosilicio.blogspot.com/
Linux Registered User #476277 - http://counter.li.org/
Si nada te resulta.......Rutea el algoritmo po GIL!!!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20081018/64ee0107/attachment.html>


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