estuve a punto de mandar a la lista que para salir de muchos loops anidados usar un "named break" prdoucto de mi actual curso de java.....<br><br>cuando prima la velocidad y la optimizacion las reglas de buenas costumbres se van al cuerno....<br>
es la realidad el codigo claro rara ez es el mas optimo.....<br><br><br>con respecto a muchos loops anidados talvez seria una opcion hacer una funcion aparte y poner un return....<br>no se no lo pense mucho puede que en esos casos el goto sea lo indicado....<br>
<br>el problema se da si se utiliza un goto para salir de una funcion, por que cada vez que se haga eso se ocupa mas y mas el stack y nunca se libera.<br>bueno me tengo que ir a trabajar.<br>David<br><br><br><div class="gmail_quote">
El 10 de noviembre de 2008 3:13, 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 David,<div class="Ih2E3d"><br>
<br>
David fire wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
siento dicentir pero no se me ocurre ningun caso en C/C++ o cualquier otro lenguaje de alto nivel que requiera usar GOTO en vez de if for whilke etc...<br>
</blockquote>
<br></div>
Sí hay casos que se consideran apropiados usar 'goto', cuando prima la claridad de un código fuente que de por sí puede ser complicado. El típico ejemplo de esto es el de salir directamente de una serie de bucles anidados. Por ejemplo,<br>

<br>
for( ... )<br>
{<br>
  while( ... )<br>
  {<br>
    for( ... )<br>
    {<br>
      for( ... )<br>
      {<br>
        if( ... )<br>
        {<br>
          ...<br>
          goto salir;<br>
        }<br>
      }<br>
    }<br>
  }<br>
}<br>
<br>
salir:<br>
...<br>
<br>
Obviamente, podríamos usar una variable booleana que sirviese de banderín o indicador para salir de todos estos bucles. Sin embargo, complica un poco todo este código agregar otro elemento sólo con el propósito de controlar la salida de todos los bucles anidados. Por ejemplo,<br>

<br>
bool bSalir = false;<br>
<br>
for( ... && !bSalir )<br>
{<br>
  while( ... && !bSalir )<br>
  {<br>
    for( ... && !bSalir )<br>
    {<br>
      for( ... && !bSalir )<br>
      {<br>
        if( ... )<br>
        {<br>
          ...<br>
          bSalir = true;<br>
        }<br>
      }<br>
    }<br>
  }<br>
}<br>
...<br>
<br>
<br>
También hay que tener en cuenta que es posible que necesitemos un código de muy bajo nivel porque prima la velocidad de ejecución del programa u optimización del tamaño del programa ejecutable. La otra razón de tener 'goto' es que algunos programas que traducen de ensamblador a C/C++ pueden usar 'goto' para indicar los "saltos" a otras instrucciones en el programa. Si no tuviéramos 'goto' disponible, el traductor podría tener problemas a la hora de elegir la estructura correcta de C/C++ para representar la lógica del programa.<br>

<br>
En general, no usaríamos 'goto', por los peligros que existen y además ya tenemos varias otras estructuras ofrecidas por el lenguaje. Sin embargo, es útil saber que si necesitamos 'goto', por la razón que sea, lo tendremos a mano.<br>

<br>
<br>
Espero haber aclarado un poco 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>