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 0
o 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.