Últimos Tutoriales
Chat
Licencia
| Curso de programación PIC en C con CCS. Sentencias goto, break, continue. |
| Escrito por Albert |
|
Hoy continuamos con el curso hablando de las sentencias de control break, continue y goto.
La sentencia break: Esta sentencia tiene dos funciones, la primera es la que ya se ha mencionado en este curso que nos permite salir de un case en un bloque switch; la segunda, de la cual hablaremos hoy, es la de provocar la salida inmediata de cualquier ciclo que se esté ejecutando sin importar la condición de permanencia en el mismo.
Comentario: Este programa hace que el PIC espere hasta que se pulse un botón conectado en la patilla RB0, cuando esto ocurre se enciende un led conectado a la patilla RB1 durante un segundo para luego apargarse y volver a esperar el botón sea pulsado nuevamente.
Nótese que, cuando ocurre el break se salta a la siguiente instrucción fuera del while más anidado o más "pequeño", es decir, salta a la instrucción: output_high(PIN_B1) . El break nos permite interrumpir un ciclo a la vez.
La sentencia continue: Esta otra sentencia provoca de forma forzada una nueva iteración del ciclo en ejecución saltando aquellas instrucciones que faltaban para el término normal de la iteración en curso. En el caso de un ciclo while o do-while se salta directamente a la verificación de la condición del ciclo mientras que en un ciclo for se salta a la parte de incremento del ciclo y luego a la verificación de la condición de ciclo.
Comentario: Este programa se basa en un ciclo for de 5 iteraciones en la cuales se espera a que se presione una tecla numérica y la muestra en pantalla, si se presiona otra tecla que no sea numérica se muestra en el terminal el mensaje "No presionaste un numero" y se salta a la siguiente iteración. Luego de las cinco iteraciones, se termina el programa mostrando el mensaje "Fin de programa".
Sentencia goto: Esta última sentencia de la que hablaremos hoy permite, en conjunto con una etiqueta, realizar un salto incondicional a cualquier parte del programa. La forma de hacerlo sería la siguiente: Como verán, es muy parecido a cómo se hacen las cosas en assembler. En el ejemplo anterior simplemente se decrementa la variable i desde 5 hasta 0. Esto sería equivalente al siguiente ciclo for: La sentencia goto es, generalmente, la opción menos recomendada a utilizar, esto se debe a que el lenguaje C es un lenguaje estructurado y el uso de esta sentencia puede, en algunas ocasiones, hacer que la estructura del programa sea "inentendible" pareciéndose así a un programa hecho en assembler. Además, muchos autores aseguran que con el uso de las sentencias break y continue se puede estruccturar cualquier programa para sin necesitar el uso de la función goto. No obstante, esta sentencia podría también hacernos la "vida" mucho más fácil a la hora de programar, un caso típico sería cuando queremos salir de varíos ciclos anidados de una vez cosa que, con la sentencia break, no sería tan sencillo. Para terminar de entender esto veamos el siguiente y último ejemplo del día de hoy:
Comentario: En este programa el PIC se encuentra "atrapado" en un cuarto while infinito anidado. Cuando la condición del if es cierta entonces se salta a la etiqueta "salida:" entrando así en un while que pondrá a parpadear a el led. |
| Última actualización el Viernes, 08 de Abril de 2011 19:15 |










