Sunteți pe pagina 1din 76

PROGRAMACION DE

MICROCONTROLADORES
Ing. Adriana Ramírez Mora
UMB
Aunque el microcontrolador tiene la posibilidad de
realizar muchas funciones, solo realizará lo que
nosotros le digamos que haga.
Para esto se debe cargar en su memoria de
programa las instrucciones que debe seguir. Estas
instrucciones son unos y ceros que el micro
interpretará y realizará de manera secuencial.
Al conjunto de instrucciones que se cargan en el
microcontrolador se le llama programa.
PASOS PARA DAR SOLUCIÓN A UN
PROBLEMA
1. Analizar la situación problema, determinar las entradas y
salidas, describir de manera general el proceso
2. Elaborar diagrama de flujo
3. Escribir el programa en el lenguaje escogido
4. Compilar
5. Corregir errores
6. Si es posible simular
7. Cargar el código en el microcontrolador
8. Prueba en Protoboard
DIAGRAMA DE FLUJO
El diagrama de flujo es una representación gráfica que
muestra detalladamente el algoritmo de un programa,
consiste en una serie de símbolos gráficos que representan
por si solos acciones o decisiones unidos por flechas que
determinan el flujo del programa, los símbolos de acciones o
decisiones contienen en su interior un paso de la secuencia
generada por el pseudocódigo.
El análisis del problema puede conducir inmediatamente al
desarrollo de un diagrama de flujo que integra en un solo
paso el pseudocódigo y el diagrama mismo, aunque los
diagramas de flujo contienen símbolos diversos para
representar las acciones, se utilizaran básicamente cuatro
de ellos
SIMBOLOS
Recomendaciones al realizar diagrama
de flujo
 Desarrollar primero el algoritmo ojala en pseudocódigo, definiendo las
entradas (variables y constantes), el proceso (acciones, decisiones o
bifurcaciones) y el resultado (almacenado en memoria, acción sobre
periféricos (visualizar, actuar, activar).
 Utilizar adecuadamente la simbología grafica acorde con la acción
determinada en la secuencia del pseudocódigo.
 Representar el diagrama de arriba hacia abajo y/o de izquierda a
derecha.
 Los símbolos se conectan por flechas que indican la dirección del flujo
del programa, es recomendable utilizar solo líneas horizontales y
verticales., no diagonales.
 Los símbolos pueden tener más de una línea de entrada.
Recomendaciones al realizar diagrama
de flujo
 Los símbolos de decisión deben contener dos líneas de salida
(si/no; falso/verdadero; cumple/no cumple).
 Los textos deben estar escritos de forma clara y legible evitando
usar muchas palabras.
 Se recomienda no cruzar líneas de flujo pues se confunde con un
nodo.
 No dejar líneas de flujo sin conectar.
 En caso que el diagrama de flujo haga un llamado a otro
programa representarlo como una acción que se dirija a esa
subrutina seguida de otra que retorne el resultado de la misma.
 Se recomienda nombrar cada programa y subprograma
(subrutina) de manera que al convertirlo en lenguaje
ensamblador, es acorde con el diagrama de flujo.
EJEMPLOS
DIAGRAMAS DE FLUJO
LENGUAJES DE PROGRAMACIÓN
PARA MICROCONTROLADORES PIC
LENGUAJES DE PROGRAMACIÓN

Existen varios lenguajes de programación para microcontroladores PIC,


entre ellos tenemos:

• Lenguaje de máquina
• Lenguaje ensamblador
• C para pic (XC8, PICC, MicroC)
• Basic para pic
• Niple

Un error común que se comete cuando se menciona la posibilidad de


programar en Basic o C es pensar que con Visual Basic o Visual C++ se
puede elaborar rutinas para PICs, pero en realidad lo que se debe tener
en cuenta es que existen compiladores especiales para estos lenguajes y
por ende la sintaxis es diferente de la de un lenguaje orientado a objetos.
LENGUAJES DE PROGRAMACIÓN
El lenguaje que entienden los microcontroladores es el
lenguaje máquina, así que si se escribe el programa en
otro lenguaje se debe realizar una traducción a
lenguaje máquina, esta tarea la realiza un software
específico, para lo cual se requiere de tres pasos:

1. Editar el programa en su formato fuente (Escribir las


instrucciones en el lenguaje escogido)
2. Compilar (Traducir) y Depurar (Buscar errores
sintácticos y lógicos)
3. Realizar las correcciones
LENGUAJES DE PROGRAMACIÓN

Código fuente: Es el conjunto de líneas de texto que


representan las instrucciones que debe seguir la CPU para
ejecutar el programa, este código describe completamente el
funcionamiento del programa, aunque no es directamente
ejecutable teniendo que pasar por un compilador para ser
traducido a lenguaje maquina o código objeto.

Los compiladores Se encargan de traducir el programa fuente


en código maquina, estos son específicos del lenguaje en cual
se programe
LENGUAJE DE MÁQUINA
Este lenguaje es el que entiende directamente el
micro, son las instrucciones en binario (unos y
ceros), lo que hace que su escritura y compresión
sea bastante compleja, aunque para simplificar se
representen en hexadecimal.

Como desventaja el lenguaje máquina tiene:


• Difícil de recordar la cadena que identifica una
instrucción
• Diferencia entre set de instrucciones de un micro
a otro
• Mayor posibilidad de cometer errores
LENGUAJE ENSAMBLADOR

En el lenguaje ensamblador se solucionan varios de los inconvenientes


del lenguaje máquina al remplazar el código binario por
mnemotécnicos que usan términos de fácil asociación a la operación
que realiza la instrucción.
Ej.

Codigo Binario Codigo Hex. MNEMOTÉCNICO


1011010000001000 B408 MOV AH, 08
El lenguaje ensamblador es considerado un lenguaje de bajo nivel
aunque es mucho más fácil que el lenguaje máquina, mantiene la
dependencia al tipo de procesador.
LENGUAJE ENSAMBLADOR
Ventajas:

Es el lenguaje de bajo nivel natural de la línea PIC tanto para gama baja, media o
alta.
Con el se tiene un aprovechamiento eficiente de los recursos del PIC.
Se pueden crear macros con este lenguaje, para después simplificar el código en
diferentes desarrollos.
Con el se pueden controlar los tiempos y los registros bit a bit.
Excelente para manejar interrupciones simultáneas.
Cuando se genera el archivo .hex éste es completamente optimizado.

Desventajas:

Se requiere experiencia en programación, puede ser más complicado que los otros
lenguajes de programación
C PARA PIC

Ventajas:

Es un lenguaje de alto nivel.


Puedes construir rutinas matemáticas fácilmente.
Puede ser de ayuda al combinarlo con Ensamblador sobre todo en la gama alta.
Se pueden crear macros con este lenguaje, para después simplificar el código en
diferentes desarrollos.
Es aceptado por la empresa fabricante Microchip, incluso ellos tienen algunos
compiladores C.

Desventajas:

Los programas al compilarlos pueden resultar un poco extensos y pesados.


Con este lenguaje no se puede controlar del todo los tiempos y los registros bit a
bit.
Ejemplo PICC
BASIC PARA PIC

Ventajas:

Es un lenguaje muy simple y con instrucciones fácilmente legibles, incluso por


no expertos.

Desventajas:

Nunca se tiene el control del programa en cuanto tiempos de ejecución y


control de registros bit a bit.

Es muy complicado el manejo de interrupciones simultáneas en este


lenguaje.

Tiene limitaciones cuando genera el archivo .hex, es decir no optimiza el


tamaño de memoria de programa del PIC.

La mayoría de compiladores para este lenguaje pueden utilizarse


únicamente bajo ambiente Windows.
BASIC PARA PIC

Existen varias casas que producen compiladores


para este lenguaje, entre ellas se pueden
mencionar a:

www.letbasic.com
www.melabs.com
www.basicmicro.com

El más conocido y que a mi parecer es mejor entre


ellos es el PICBASIC PRO de MicroEngineering Labs
Inc. No es gratuito.
Ejemplo BASIC PARA PIC
NIPLE

Niple es un lenguaje mayormente


gráfico, muy amigable, que permite
con conocimientos básicos de PIC ,
crear en base a diagramas de flujo
un programa.
Esto significa que, cada parte de
éste diagrama es una especie de
makro, que combinado con la
posibilidad de configurar los puertos
del dispositivo en forma gráfica, y
algunos datos específicos de cada
desarrollo termina generando un
código de peso respetable.
NIPLE
Ventajas:

Tienes rutinas resueltas, como comunicación serie por soft,


comunicación serie por USART, manejo de LCD, Comunicación
I2C. Es muy ameno y sencillo hacer programas de una
complejidad media.

Limitaciones:

Si bien se han ampliado la cantidad de dispositivos PIC para los


que se puede usar Niple todavía son pocos (16F84 / 16F877 /
16F628 / 627 / 648), sigue habiendo un Niple para dispositivos de
28 pines y otro para los de 40... o sea, no es un Niple general que
permite general código para cualquiera de los dispositivos
disponibles.
XC8
MPLAB
COMPOSICIÓN GENERAL

• Directivas de Pre-procesamiento
• Declaración de constantes
• Declaración de variables globales
• Funciones definidas por el usuario
• Función MAIN
• Comentarios para entender el
funcionamiento del programa

Ing. Adriana Ramírez


DIRECTIVAS DE
PREPROCESAMIENTO
Le dice al compilador que realice algunas tareas antes de compilar el
programa, como por ejemplo:

• Incluir librerías: #include <libreria.h>


< > se encuentra en plibs, “ ” Cuando se encuentra en la carpeta del
proyecto
• Definir fusibles: #pragma config FOSC = XT_XT
• Para poder usar la función delay... es necesario indicar al compilador la
frecuencia del reloj con #define _XTAL_FREQ 20000000 por ejemplo.

Entre otros.
Ing. Adriana Ramírez
COMENTARIOS
Para entender siempre el programa hecho, sea por otra persona o
por nosotros mismos cuando lo retomemos después de algún tiempo,
es importante realizar comentarios de todo lo realizado.
En XC8 al final de cada instrucción se debe poner punto y coma (;)
para indicar que ahí termina la instrucción.
Para realizar comentarios se utiliza // cuando se desea que el
comentario quede en la misma línea.
Si el comentario utiliza más de una línea se utiliza /* y cuando se
termine el comentario se usa */ para indicar que terminó el
comentario

Ing. Adriana Ramírez


Para trabajar sobre un registro específico se usa el
mismo nombre que tiene en el datasheet: TRISB,
LATD, PORTA.

Para trabajar sobre un bit específico del registro se


usa:

LATDbits.LATD0 o simplemente LATD0 o LD0


PORTDbits.RD1 o Simplemente RD1

Ing. Adriana Ramírez


 RBPU = 1; //para apagar las Resistencias de PullUp del puerto
Frecuencia del oscilador interno se configura en OSCCON con los bits
• Selección de la frecuencia del oscilador interno
Declaración de constantes

Con #define por ejemplo:

#define ON 1 //la palabra on valdrá siempre 1


#define OFF 0 // la palabra off valdrá siempre 0

#define led LATD0 //nombra Led al bit 0 del LATD


#define sw RD1 //nombra sw al bit 1 del PORTD

Ing. Adriana Ramírez


DECLARACIÓN DE VARIABLES
GLOBALES
Las variables será donde se guarden los datos de los procesos, como contadores, sumas,
promedios, edad…etc. Según el programa diseñado. Se llaman variables globales porque
serán usadas en cualquiera de las funciones que contenga el programa.
Antes de usar las variables, estas deben ser declaradas, indicando el tipo de variable del
que se trata y su nombre, escritas en ese orden:

Tipo Variable

Ejemplo:
Int cont

En el ejemplo se define una variable llamada cont, de tipo entero (Int)

Ing. Adriana Ramírez


Tipos de Datos
TIPO TAMAÑO RANGO DESCRIPCIÓN
Bit 1 bit 0o1 Bit
Signed char 8 bits -128 a 127 Entero con signo
Unsigned char 8 bits 0 a 255 Entero sin signo
Signed int 16 bits -32768 a 32767 Entero largo con signo
Unsigned int 16 bits 0 a 65535 Entero largo sin signo
Signed long 32 bits -2147483648 a 2147483647 Entero de 32 bits
Unsigned long 32 bits 0 a 4294’967295
Float 32 bits ±1.175x10−38 a Coma flotante
±3.402x1038
Double 64 bits - Coma flotante
void ninguno No tiene valor
Ing. Adriana Ramírez
Tipos de datos

Si el signo no se especifica junto al tipo de dato, este será por


defecto con signo a excepción del tipo char que por defecto es sin
signo. El tipo bit siempre se lo toma sin signo.

Ej. Char conta1 // define conta1 como variable entero 8 bits sin
signo

int conta2 //define conta2 como variable entera 16 bits con


signo

Char conta3 = 0; //Entero sin signo inicializado en el valor 0

Ing. Adriana Ramírez


Los valores se pueden especificar en decimal, binario, octal,
hexadecimal… entre otras, así:

• Decimal: 123
• Octal se antepone un cero: 0452
• Hexadecimal se antepone 0X: 0x3F
• Binario se antepone 0b: 0b10001110
• Carácter se escribe entre comilla sencilla: ‘a’

Ing. Adriana Ramírez


En el momento de definir las variables se les puede o
no asignar un valor. Ej:

Int segundos=0, minutos=0, horas=1, tabla;

Se está definiendo cuatro variables, todas de tipo


entero, las primeras tres inician con un valor. A la
variable tabla no se le asigna ningún valor.
Vectores
Para definir un vector se usa:
char tabla[10]; //define un vector llamado tabla con diez posiciones
tipo char cada uno

Para definir con valores iniciales se ingresan los valores entre corchetes
separados por coma

char tabla[3]={5,4,8}; //numeración de izq derecha iniciando en 0

Para guardar un valor en una posición específica del vector se hace:

Tabla [0] = 4; //guarda el valor cuatro en la posición cero del vector


tabla
Ing. Adriana Ramírez
FUNCIONES

Las funciones son conjuntos de instrucciones que realizan una tarea


específica, dentro de estas se encuentra el programa principal que
se denota como función main().

Existen otras funciones que trae el compilador para hacer más fácil
la programación y otras que pueden ser creadas por el
programador (como subrutinas), que tendrán el nombre que le
asigne el programador según la función que cumpla.

Todo programa en C debe contener la función main().

Ing. Adriana Ramírez


FUNCIÓN MAIN

Esta función contiene el programa principal y sin importar su posición dentro


del archivo de texto del programa será la primera en ejecutarse.

Toda función devuelve un valor, aunque este sea nulo, Para indicar el inicio
de la función principal se debe escribir:

void main()
{
aquí van las líneas del programa principal
}
Funciones definidas por el programador

Se pueden definir funciones que realicen alguna tarea en particular y que sea
invocada desde el programa principal (como llamado a una subrutina),
Para esto se debe crear la función con sus instrucciones antes del programa
principal, por ejemplo:

Void sieteseg()
{
se escriben las líneas de programa de la función
}

Cuando se desee llamar la función desde la función principal solo se debe escribir:

sieteseg();

Ing. Adriana Ramírez


Funciones se declaran antes del main, si las pongo después del
main se debe declarar como prototipo antes del main para
que las reconozca:

// prototipos
Void funcion1();
//función principal
Void main(void)
{
……….
}
//funciOnes
Void funcion1()
{
…instrucciones de la función
}
OPERACIONES

Operación Simbolo
Suma +
Resta -
Multiplicación *
OPERACIONES
ARITMÉTICAS División /
Módulo (Resto de la división) %
Incremento ++
Decremento --

Ing. Adriana Ramírez


Operaciones
Operación Simbolo
OPERACIONES Not !
LÓGICAS And &&
Or ||

Operación Simbolo
Menor que <
Mayor que >
OPERACIONES Menor o igual <=
RELACIONALES que
(Se usan especialmente Mayor o igual >=
para preguntar) que
Igual ==
Distinto !=
Ing. Adriana Ramírez
Operaciones

Operación Símbolo
Asignación de suma (a+=b equivale a a=a+b) +=
Asignación de resta (a-=b equivale a a=a-b) -=
Asignación de multiplicación (a*=b equivale a *=
a=a*b)
OPERACIONES Asignación de división (a/=b equivale a a=a/b) /=
DE
Asignación de módulo (a%=b equivale a a=a%b) %=
ASIGNACIÓN
Asignación de desplazamiento a la izquierda <<=
Asignación de desplazamiento a la derecha >>=
Asignación AND (a&=b equivale a a = a&b) &=
Asignación OR (a|=b equivale a a = a|b) |=
Asignación XOR (a^=b equivale a a=a^b) ^=

Ing. Adriana Ramírez


Ej. operaciones aritméticas

char A=7, B=3, C, D, E, F; //Declaramos variables

C = A+5; //C sería igual a 12


D = A+B; // C sería 10

E = B – 2; //E sería 1
F = A - B; // F sería 4

C = 5*A; // C sería 35
D = A*B // D sería 21

Ing. Adriana Ramírez


Ej. operaciones aritméticas
char A=9, B=2, C, D, E, F; //Declaramos variables
FLOAT G; //declaramos G como flotante

C = A/3; // C sería 3
D = 10/B; // D sería 5
E = A/B; // como E se definió como entero, sería 4
F = A%B // F sería el resto de la división: 1
G = A/B; // Como G es de tipo float sería 4,5

A++; // realiza A=A+1


B--; // realiza B=B-1

Ing. Adriana Ramírez


Retardos

El __delay_ms(x) o __delay_us(x) usa la frecuencia del reloj por lo


cual depende de esta el máximo valor que podemos poner en x

Se debe definir al inicio la frecuencia del cristal:


#define _XTAL_FREQ 8000000

Ing. Adriana Ramírez


Retardos
Puede usarse también las siguientes funciones de retardo de C18

Delay10TCYx(i);//10.Tcy.i genera una demora de 10 ciclos de instrucciones*i


Delay100TCYx(i); //100.Tcy.i genera una demora de 100 ciclos de instrucción*i
Delay1KTCYx(i); //1000.Tcy.i genera una demora de 1000 ciclos de instrucciones*i
Delay10KTCYx(i); //10000.Tcy.i genera una demora de 10000 ciclos de instrucción*i

Para usar estas debe incluirse la librería delays.h que viene de C18 y definir la frecuencia
de reloj:
#define _XTAL_FREQ 4000000
#include <delays.h>

El parámetro i está definido como unsinged char (8 bits) por lo cual el máximo valor es 255
Estructuras de decisión

Ing. Adriana Ramírez


Como su nombre lo indica las declaraciones de
control se encargan de controlar el flujo de los datos
o del proceso de ejecución del programa.
Las declaraciones de control más usadas son:

if – else
Switch, case
While
For

Ing. Adriana Ramírez


IF - ELSE

Ing. Adriana Ramírez


IF - ELSE
Sirve para tomar decisiones, con este se realiza una pregunta cuya respuesta es si o no:

La forma de usarlo es:

If(pregunta)
{
instrucciones a realizar si se
cumple la pregunta
}
Else
{
Instrucciones a realizar si no
}

Ing. Adriana Ramírez


IF-ELSE
Se pueden realizar preguntas de igualdad utilizando ==

Ejemplos:
• Si quiero saber si dos variables son iguales: If (a==b)
• Si quiero saber si una variables es igual a un valor específico if
(a==20)
• Si quiero saber si dos variables son diferentes se usa != así:
If (a!=b)

Ing. Adriana Ramírez


IF - ELSE
Como se notará la pregunta se realiza dentro del IF no dentro del else, se
sobre-entiende que el else es el no de la pregunta que se realizó en el if.
Ejemplo:
If(A==10)
{
contador++;
}
Else
{
contador--;
}
Puertoc=contador

Ing. Adriana Ramírez


IF-ELSE

También se puede usar operadores relacionales,


ejemplos:

Si a es menor que b: if(a<b)


Si a es mayor que b: if(a>b)
Si a es mayor o igual que b: if(a>=b)
Si a es menor o igual que b: if(a<=b)

Ing. Adriana Ramírez


IF-ELSE
También se puede realizar operaciones lógicas para tener en cuenta
varias opciones a la vez, por ejemplo:
Se desea que se realice una acción dentro del if si se cumple que la
variable a=1 y la variable c=5:
if ((a==1)&&(c==5))
Otro ejemplo si se desea realizar una acción dentro del if cuando a o b
sean 1:
if ((a==1)||(b==1))
Note que se debe usar un paréntesis para el if (en los ejemplos en rojo)
y paréntesis aparte para cada expresión (en los ejemplos en azul)

Ing. Adriana Ramírez


if ( X ) //pregunta si X=1
If ( !X ) //pregunta si X = 0
SWITCH

Ing. Adriana Ramírez


SWITCH

Sirve para decisiones múltiples,


donde la pregunta no tiene solo
la posibilidad de si o no sino que
puede tener diferentes valores

Ing. Adriana Ramírez


SWITCH
La forma de usarlo es:
Switch (expresión)
{
case valor1:
instrucciones a realizar si es el valor1
Break; //con break se sale del switch
case valor2:
instrucciones a realizar si es el valor2
Break;
…..
Default:
……
}
Ing. Adriana Ramírez
SWITCH

Ejemplo: se desea tomar decisiones según el valor de un


contador, si este se encuentra en 0 se debe poner en el
puerto C un 3F, si el contador se encuentra en 1 se debe
enviar al puerto C un 06, si el contador se encuentra en 2 se
debe enviar al puerto C un 5B y si se encuentra en 3 se
debe enviar al puerto C un 4F.
Después de realizar estas preguntas se debe poner en 1 el
puerto A

Ing. Adriana Ramírez


SWITCH Ejemplo:

Switch (Cont)
{
case 0:
portc=0X0F;
break;
case 1:
portc=0X06;
break;
case 2:
portc=0x5B;
break;
case 3:
portc=0x4F;
break;
}
Porta=1;

Ing. Adriana Ramírez


SWITCH

Se debe tener en cuenta que:


Los casos deben ser concretos, no se puede por ejemplo
preguntar si es menor o mayor o igual sino que se tiene
que poner el valor específico.

El Switch al igual que el if-else no es repetitivo

Ing. Adriana Ramírez


ESTRUCTURAS DE REPETICIÓN

Ing. Adriana Ramírez


WHILE
(MIENTRAS QUE..)

Ing. Adriana Ramírez


WHILE
Se usa para repetir instrucciones varias veces, esta debe tener una
condición que controla la secuencia de repetición y cuando debe salir
de este.
La forma de usarlo es:

While(condicion)
{
instrucciones a repetir
mientras se cumpla la
condición
}

Ing. Adriana Ramírez


WHILE

Ejemplo: se desea verificar si la variable pulso cambia a 1, mientras sea


cero debe estar monitoreando, cuando cambie a 1 debe salir a realizar
el resto de tareas.

While (pulso=0)
{
}

No hay instrucciones porque no


se pide que realice nada mientras
espera que pulso cambie a 1. Cuando pulso cambie a 1 saldrá del
while

Ing. Adriana Ramírez


WHILE

Ej2. Se desea esperar que la entrada RC,2 cambie a 1, mientras


espera se debe realizar una subrutina llamada visualización,
cuando RC,2 cambie a 1 se debe poner en 1 el bit 5 del puerto D

Como el while repite


mientras se cumple la
condición
preguntamos si RC,2
es 0, en lugar de
preguntar si es 1.

Ing. Adriana Ramírez


WHILE

El segmento de programa quedaría así:

While(RC2 == 0)
{
visualizacion();
}
LATD5=1;

Ing. Adriana Ramírez


WHILE

Ej.3 se desea realizar un contador de 0 a 9 que incremente


cada 100 ms automáticamente usando WHILE y visualice
el conteo

Cont=0;
While(cont<9)
{
__delay_ms(100);
cont++;
visualiza();
}

Ing. Adriana Ramírez


DO … While
Realiza las acciones una vez antes de preguntar si la
condición se cumple
FOR
(para)

Ing. Adriana Ramírez


FOR

Se usa para repetir instrucciones varias veces, a diferencia


del While, en el For se define desde el principio la cantidad
de veces que se realizará
La forma de usarlo es:

For(valor inicial de la variable; condición de finalización ;


incremento de la variable)
{
instrucciones a realizar
}

Ing. Adriana Ramírez


FOR
Por ejemplo para el contador de 0 a 9:

For(conta=0 ; conta<10 ; conta++)


{
__delay_ms(100);
visualiza();
}

Para que se ejecute un bucle sin fin se utiliza:

For( ; ; )
{
Instrucciones a repetir de manera infinita
}
Ing. Adriana Ramírez
Ejemplo

En este ejemplo se enciende y


apaga automáticamente un
led con intervalos de 1
segundo, para esto se usa una
función que requiere el
parámetro t, este valor se usa
para delimitar las iteraciones
del for.
En el ejemplo se envía el
parámetro 100, así que el for
repetirá 100 veces el retado de
10ms para un total de 1s.
Continue;
La sentencia continue hace que el
programa regrese al principio de
un bucle sin completar la iteración
actual.
Ejemplo:

while (i < 4)
{
i++;
if (i == 2) continue;
printf(“Iteración%d\n", i);
}
En pantalla se vería:
Iteración 1
Iteración 3
Iteración 4
break;

Sirve para romper el bucle, cualquier otro código que


permanezca dentro del bucle se omitirá y saldrá del bucle
inmediatamente.

while (i < 10)


{
i++;

if (i == 5) break; //Exit from the loop when i=5.


//Iteration 6-9 will not be executed.
printf("Loop iteration %d\n", i);
}

S-ar putea să vă placă și