TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micro_pepe en 13 de Abril de 2009, 11:41:54
-
Tengo una duda con la instrucción Break. Si pongo esto, al ejecutarse la instruccion Break se sale del do-while?
do{
-----
-----
if(condicion1)
Break;
}while(condicion2);
Un saludo.
-
Sí, el break termina cualquier ciclo o loop en el que se encuentre anidado. Si el while está anidado en otro while, solo termina el while interior y se sigue ejecutando el while exterior.
-
Tb sirve para el ciclo for y el switch.
-
tambien hay una llamada continue, aca un poco de teoria:
BIFURCACIONES DE CONTROL BREAK
Esta instrucción nos permite salir de cualquier bucle ya sea WHILE , DO WHILE, FOR. Cuando el programa encuentra a esat instrucción simplemente salta a la siguiente instruccion fuera del bucle donde se hallaba contenido.
Ejm:
for(a=0;a<=200;a++)
{
Delay1KTCYx(200);
if (PORTA==0X05)
break;
LATB=~LATB;
}
En esta situación, tenemos un bucle FOR que contara hasta 200 con la variable " a " para satisfacer la expresión del bucle, sin embargo existe un break el cual depende de la estructura condicional IF que inidica si PORTA is igual a 5 entonces ejecuta break, de lo contrario finaliza el IF y continua con el bucle. Cuando PORTA sea igual a 5 el programa se topara con el BREAK y como consecuencia terminara con el bucle FOR y continuará con la siguiente instrucción fuera del bucle.
BIFURCACIONES DE CONTROL CONTINUE
Digamos que dentro de nuestro bucle existe una instrucción al final del bloque de codigo que queremos saltarla o no ejecutarla dependiendo de alguna condición extra, la instruccion CONTINUE permite saltar todas las instrucciones posteriores a su aparición dentro del bloque de codigo escrito en el bucle.
Ejm:
for(b=0;b<=200;b++)
{
Delay1KTCYx(200);
if (PORTA==0X0A)
continue;
LATC=~LATC;
}
En este caso, el bucle FOR contara hasta 200 con la variable " b " y ejecutará la ultima instruccion LATC=~LATC dependiendo del estado del PORTA, siempre y cuando sea igual a 0X0A, de esta manera se utiliza el CONTINUE.
lo saque de aqui:
tutorial de c18 (http://www.todopic.com.ar/foros/index.php?topic=17017.msg115528#msg115528)