<div dir="ltr">solo un comentario <br>NUNCA NUNCA NUNCA uses goto... <br><br><div class="gmail_quote">El 18 de octubre de 2008 4:30, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hola Marco,<div class="Ih2E3d"><br>
<br>
Marco Ibarra wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Soy nuevo en C++ y tambien en la lista de correo, estuve buscando la<br>
</blockquote>
<br></div>
Antes de continuar, te doy la bienvenida a la lista y a este mundo de C++.<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
manera de regresar al principio de un switch sin la necesidad de goto<br>
(en caso de que exista tal manera), como ejemplo el siguiente codigo:<br>
</blockquote>
<br></div>
Veamos el código.<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
cout<<"El siguiente programa le permite realizar conversiones de grados Celsius"<<endl;<br>
cout<<"y grados Fahrenheit. Para comenzar:"<<endl<<endl;<br>
<br>
<br>
      start1:                   cout<<"Seleccione la escala que desea convertir: " <<endl;<br>
      cout<<"Celsius(1), Fahrenheit(2)." << endl<<endl;<br>
<br>
//seleccion de escala y conversion<br>
<br>
      int escala;<br>
      float celsius, fahrenheit;            cin>> escala;                start:<br>
           switch (escala){      case 1:<br>
                                cout<<"Ingrese grados Celsius:"<<endl;<br>
                     cin>> celsius;<br>
                     fahrenheit=celsius*9/5+32;<br>
                     cout<<endl<<endl<<celsius<<" grados Celsius, equivalen a "<br>
                     <<fahrenheit<<" Grados Fahrenheit"<<endl<<endl;<br>
                     break;                                           case 2:                       cout<<"Ingrese grados Fahrenheit:"<<endl;<br>
                     cin>> fahrenheit;                                                 celsius=fahrenheit-32*5/9;<br>
                     cout<<endl<<endl<<fahrenheit<<" grados Fahrenheit equivalen a "<br>
                     <<celsius<<" Grados Celsius"<<endl<<endl;<br>
                     break;<br>
                                 default:<br>
                       cout<<endl<<"Seleccion incorrecta, ingrese una opcion valida."<br>
            <<endl<<"Celsius(1), Fahrenheit(2)";<br>
            cout<<endl<<endl;<br>
            cin>>escala;<br>
            goto start;<br>
</blockquote>
<br></div>
Podrías usar 'continue' en lugar de 'goto', ya que volverás a ejecutar esta sentencia de 'switch/case'. De todas maneras, no sugiero hacer esto. En su lugar, usa bucles, como puede ser 'do/while'. Por ejemplo,<br>

<br>
bool bRepetir = false;<br>
do<br>
{<br>
  ...<br>
  switch( escala )<br>
  {<br>
    case 1:<br>
    ...<br>
    break;<br>
<br>
    case 1:<br>
    ...<br>
    break;<br>
<br>
    default:<br>
    ...<br>
    bRepetir = true;<br>
  }<br>
} while( bRepetir );<br>
<br>
Usando una variable booleana podemos controlar si debemos repetir estas sentencias o no.<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
            }<br>
            //repetir o salir del programa<br>
<br>
            char rep;<br>
            cout<<endl<<"Desea realizar otra operacion?"<<endl;<br>
            cout<<"Presione (r)para repetir, o cualquier tecla para salir."<<endl<<endl;<br>
            cin>>rep;<br>
                        if (rep == 'r')<br>
                         goto start1;                                                  <br>
</blockquote>
<br></div>
Aquí ocurre lo mismo. Si queremos repeticiones, entonces requerimos bucles. Nuevamente, podemos usar un bucle 'do/while' en este caso. El esquema sería el siguiente:<br>
<br>
do<br>
{<div class="Ih2E3d"><br>
  cout<<"Seleccione la escala que desea convertir: " <<endl;<br>
  cout<<"Celsius(1), Fahrenheit(2)." << endl<<endl;<br></div>
  ...<br>
  bool bRepetir = false;<br>
  do<br>
  {<br>
    ...<br>
    switch( escala )<br>
    {<br>
    ...<br>
    }<br>
  } while( bRepetir );<br>
  ...<br>
} while( 'r' == rep );<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
            else {<br>
                 cout<<endl<<endl<<endl<br>
                 <<"****Gracias por utilizar este programa, Hasta luego!!****"<<endl;<br>
                 }<br>
                        cin.get();<br>
      cin.get();<br>
      return 0;<br>
}<br>
<br>
Al parecer el codigo ya compilado funciona tal como deveria, pero no dejo de pensar en goto.<br>
<br>
</blockquote>
<br></div>
Deberías dejar de pensar en 'goto'. Existen demasiados peligros y quebraderos de cabeza que no merece la pena usar este vocablo. Como ya he mencionado antes, si tu diseño necesita repetir, entonces automática e inmediatamente deberías pensar en usar bucles. C++ te ofrece tres diferentes tipos de bucles, por lo que tienes donde elegir.<br>

<br>
<br>
Espero que esto te aclare el tema.<br><font color="#888888">
<br>
Steven</font><div><div></div><div class="Wj3C7c"><br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br> (\__/) <br>(='.'=)This is Bunny. Copy and paste bunny into your <br>(")_(")signature to help him gain world domination. <br><br>
</div>