Control de flujo #
El control de flujo es el pilar de la programación estructurada, a pesar de que el paradigma de la programación estructurada pueda considerarse anticuada para algunos, lo cierto es que la solución de los algoritmos siempre requiere control de flujo; condicionales y repeticiones, antes de adentrarnos en el tema, revisemos el tipo de dato booleano.
Tipo de dato Booleano #
Otro tipo de datos básico es el tipo booleano, aunque por raro que parezca en C, no existía este tipo de dato originalmente, actualmente se requiere incluir la biblioteca;
#include <stdbool.h>
El tipo de dato bool puede contener únicamente dos valores, verdadero(true) o
falso(false), la sintaxis es:
#include<stdbool.h>
//Para declarar una variable
bool un_nombre;
//Para definir un valor
un_nombre = true;
un_nombre = false;
Para asumir la carencia del tipo de dato bool, C que cualquier valor diferente
de 0o NULL es verdadero, sin embargo es mejor utilizar explícitamente los
valores true o false para denotar valores booleanos, por razones de legibilidad.
Operadores booleanos #
Como el nombre sugiere, los operadores booleanos operan sobre tipos de dato booleanos y dan como resultado un booleano.
El operador and (&&) probablemente es el más utilizado,
true && true //Resulta true
true && false //Resulta false
false && true //Resulta false
false && false //Resulta false
El operador or (||)
true || true //Resulta true
true || false //Resulta true
false || true //Resulta true
false || false //Resulta false
El operador de negación (!)
!false //Resulta true
!true //Resulta false
Operadores de comparación #
Los operadores de comparación, comparan dos expresiones y evalúan el resultado como falso o verdadero.
Igualdad:
10 == 10 //true
'a' == 'b' //false
Diferencia:
10 != 10 //false
'a' != 'b' //true
Menor que:
10 < 11 //true
10 < 10 //false
Mayor que:
10 > 11 //false
11 > 10 //true
Menor o igual que:
10 <= 11 //true
10 <= 10 //true
Mayor o igual que:
10 >= 11 //false
10 >= 10 //true
Condicionales, if, else #
El termino control de flujo se deriva de los diagramas de flujo, una técnica
gráfica de diseño de programas estructurados, en ellos existe un bloque
llamado if, el cual tiene la capacidad de decidir la siguiente acción en
base a una condición, en C:
bool condicional;
if(condicional){
//Ejecuta este código si condicional es verdadero
}
el complemento de if es else:
bool condicional;
if(condicional){
//Ejecuta este código si condicional es verdadero
}else{
//Ejecuta este código si condicional es falso
}
también es posible hacer comparaciones intermedias:
if(condicion1){
//Ejecuta este código si condicion1 es verdadera
}else if(condicion2{
//Ejecuta este código si condicion1 es falso y si condicion2 es verdadera
}else if(condicion3){
//Ejecuta este código si condicion1 y condicion2 son falsos y condicion3
//es verdadera
}else{
//Ejecuta este código si todas las condiciones son falsas
}
Debe resaltarse que la evaluación de las condiciones se detiene cuando se encuentra la primera condición verdadera.
Ciclos, while, for #
La repetición de acciones se logra de varias formas, pero lo más común es
utilizar los ciclos while y for.
While #
El ciclo while repite el código dentro de sus llaves mientras una condición sea verdadera:
bool condicion = true;
while(condicion){
//Repite estas lineas de código
//mientras condición sea verdadera
}
Simple y fácil de entender, otra forma de hacer repeticiones es por medio del ciclo for.