MPLAB X & C18: Sentencias repetitivas y selectivas


Sentencias selectivas
También conocidas como “Estructuras de Selección” te permiten elegir diferentes cursos de acción con base a condiciones establecidas en esta categorías tenemos IFIF-ELSE, IF-ELSE-IF y SWITCH.

Sentencia IF: Se utiliza para ejecutar una sentencia o un grupo de ellas si una expresión es cierta.

La sintaxis es la siguiente:
if (expresion){ //Si expresión es verdadera
sentenciaA; //Ejecutamos las sentencias
sentenciaB;
}
Ejemplo 1:
if(PORTA==0x01){ //Si PORTA es igual a 0x01
PORTB=0xFF; //Colocamos el valor 0xFF en PORTB
}
Ejemplo 2:
if(PORTA==1 && A==5){ //Si PORTA=1 y A=5
PORTC=1; //El puerto C es igual a 1
LED_STATUS=0; //LED_STATUS es igual a 0
X=150; //X es igual a 150
}
view raw srs_if.c hosted with ❤ by GitHub

Sentencia IF-ELSE: Se utiliza para ejecutar dos opciones posibles una cuando la condición es verdadera y otra cuando no lo es. Si la condición es verdadera se ejecutan las sentencias dentro del IF, si es falsa se ejecuta lo que este dentro del ELSE.

La sintaxis es la siguiente:
if(expresion){ //Si expresion es cierto
SentenciaA; //Ejecuta la sentencia A
}
else{
SentenciaB; //Si es falso ejecuta sentencia B
}
Ejemplo 1:
if(BOTON_UNO==1){
LED_STATUS=0;
}
else{
LED_STATUS=1;
}
view raw srs_if_else.c hosted with ❤ by GitHub
Sentencia IF-ELSE-IF: Este es una versión ampliada del IF-ELSE ya que con esto puedes evaluar más de dos condiciones, la primera empieza con un IF, después sigue un ELSE-IF (las veces que se requiera) y por último se termina con un ELSE.

La sintaxis es la siguiente:
if(Expresion1){ //Si Expresion1 es cierto
SentenciaA; //Ejecuta la sentencia A
}
else if(Expresion2){ //Si Expresion2 es cierto
SentenciaB; //Ejecuta la sentencia B
}
else if(Expresion3){ //Si Expresion3 es cierto
SentenciaC; //Ejecuta la sentencia C
}
else{ //Si ninguna de las anteriores se cumple
SentenciaD; //Ejecuta la sentencia D
}
Ejemplo 1:
if(PORTA==0x01){
LED_ROJO=1;
}
else if(PORTA==0x02){
LED_VERDE=1;
}
else if(PORTA==0x03){
LED_AZUL=1;
}
else{
LED_ROJO=0;
LED_VERDE=0;
LED_AZUL=0;
}

Sentencia SWITCH: Esta sentencia nos brinda una forma más elegante de bifurcación múltiple. Podemos considerarla como una forma más estructurada de la sentencia IF-ELSE-IF, aunque tiene algunas restricciones en las condiciones lógicas a evaluar, las cuales son comparaciones de valores enteros. Para elaborar el código se usan las palabras reservadas como lo es SWITCH, CASE, BREAK Y DEFAULT. La opción DEFAULT contiene las sentencias que no entran en ningún caso anterior.

La sintaxis es la siguiente:
switch(expresion){
case constante1: //Si costante1 = expresion ejecutar sentenciaA
sentenciaA;
break;
case constante2: //Si costante2 = expresion ejecutar sentenciaB
sentenciaB;
break;
case constante3: //Si costante3 = expresion ejecutar sentenciaC
sentenciaC;
break;
.
.
.
default: //Si expresion no es igual a ninguna de las
sentenciaD; //constantes anteriores ejecutar la sentenciaD
break;
}
Ejemplo 1:
switch(VALOR){
case 1:
LED_UNO=1; //Si VALOR=1 enciendo LED_UNO
break;
case 2:
LED_DOS=1; //Si VALOR=2 enciendo LED_DOS
break;
case 3:
LED_TRES=1; //Si VALOR=3 enciendo LED_TRES
break;
default:
LED_UNO=0; //Si VALOR es distinto
LED_DOS=0; //todos los LEDs apagados
LED_TRES=0;
break;
}
view raw srs_switch.c hosted with ❤ by GitHub

Sentencias repetitivas 
Dichas estructuras son también conocidas como por el nombre de “bucles”, “ciclos” o “lazos”. Este tipo de estructuras permite la ejecución de un conjunto de sentencias ya sea hasta que se cumple una condición o un número determinado de veces.

Sentencia WHILE: El cuerpo o bloque de este bucle se ejecutará una y otra vez mientras una expresión sea verdadera.

La sintaxis es la siguiente:
while(expresion){ //Mientas expresion es cierta
sentenciaA; //Ejecutar las siguientes sentencias
sentenciaB; //Si expresion no es cierta
. //No va a ejecutar ninguna sentencia
. //dentro del WHILE
.
sentenciaN;
}
Ejemplo 1:
while(x!=0){
a=1;
LED_STATUS=1;
VALOR=100;
}
view raw srs_while.c hosted with ❤ by GitHub
Sentencia DO-WHILE: Es parecida a un WHILE solo que la condición se evalúa al final, por lo que el cuerpo o bloque de este bucle se ejecutara por lo menos una vez. Mejor dicho mientras la expresión del WHILE sea verdadera se ejecutara todo lo que este dentro de DO.

La sintaxis es la siguiente:
do{
sentenciaA; //Ejecuta estas sentencias
sentenciaB; //mientras expresion no sea cierta
}while(expresion); //si se cumple las sentecias
//ya no se ejecutan mas
Ejemplo 1:
do{
LED_STATUS=1; //Encienoo LED
}while(n<=50); //mientas n sea menos a 50
view raw srs_do_while.c hosted with ❤ by GitHub
Sentencia FOR: Las dos sentencias anteriores, WHILE Y DO-WHILE se suelen emplear cuando no se sabe de antemano la cantidad de veces que se va a ejecutar el bucle. En los casos donde el bucle involucra alguna forma de conteo finito es preferible emplear la sentencia FOR. Esto porque un una sentencia FOR te permite tener un valor, una condición y una forma de incremento.

La sintaxis es la siguiente:
for(expresion1; expresion2; expresion3){
sentenciaA; //expresion1 es la condicion de inicio
sentenciaB; //expresion2 es la condicion que se evalua
} //mientras sea cierta se ejecutan
//las sentencias A y B
//expresion3 pone fin a expresion2
Ejemplo 1:
for(i=0; i<=20; i++){
LED_STATUS=1;
}
view raw srs_for.c hosted with ❤ by GitHub
Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

Publicar un comentario