[C con Clase] Sentencia "continue"

Mariano Demarchi marchi.hh en gmail.com
Vie Ene 22 18:24:21 CET 2010


>
> El vocablo 'continue' sirve para saltar de inmediato al comienzo de una
> estructura de control, como son los bucles y la sentencia 'switch/case'

Mas bien diría que es para saltar al final del bloque de código de la
estructura de control, sin salirse de ella.

En general, no es aconsejable usar 'continue' ni 'break', porque no su
> lógica es fácilmente detectable.
>
Para evitar el continue por lo general se puede encapsular el código que no
debe ejecutar con un if, pero tampoco es recomendable el código demasiado
anidado, por lo que no se cual es preferible.
En el caso del break, una posible solución sería modificar la condición del
bucle para que finalice, pero esto tiene una lógica aún mas elaborada y
difícil de interpretar.
Por esto es que no creo que evitar su uso sea recomendable (mediante un
reemplazo). En todo caso, modificar el algoritmo para que no sean necesarios
si puede ser recomendable, pero no reemplazarlos por otras alternativas.

En cuanto a switch case, evitar el uso de break es practivamente imposible
salvo casos muy extremos o con el uso de goto.


Saludos

El 21 de enero de 2010 18:19, Steven Davidson <srd4121 en njit.edu> escribió:

> Hola Pablo,
>
>
> Pablo! wrote:
>
>> Hola tengo una duda sobre como es el funcionamiento de la sentencia
>> continue, agradeceria una respuesta
>>
>
> El vocablo 'continue' sirve para saltar de inmediato al comienzo de una
> estructura de control, como son los bucles y la sentencia 'switch/case'. Por
> ejemplo,
>
> while( num < 100 )
> {
>  cin >> num;
>  if( num < 0 )  continue;  // Error: volvemos a pedir un número
>
>  cout << num*5;
> }
>
> Aquí usamos 'continue' para volver a empezar el bucle para que el programa
> vuelva a pedir otro número, ya que este código considera inválidos los
> números negativos.
>
> En general, no es aconsejable usar 'continue' ni 'break', porque no su
> lógica es fácilmente detectable.
>
> Sugiero consultar el capítulo 5 en nuestro curso de C++. El enlace es el
> siguiente: http://c.conclase.net/curso/index.php?cap=005d#Se_continue
>
>
> Espero haber aclarado la duda.
>
> Steven
>
>
>
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100122/78340488/attachment.html>


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