C Booleanos
Booleanos
Muy a menudo, en programación, necesitará un tipo de datos que solo pueda tener uno de dos valores, como:
- YES / NO
- ON / OFF
- TRUE / FALSE
Para esto, C tiene un tipo de datos bool
, que se conoce como booleanos.
Los booleanos representan valores que son true
o false
.
Variables booleanas
En C, el tipo bool
no es un tipo de datos integrado, como int
o char
.
Se introdujo en C99 y debes importar el siguiente archivo de encabezado para usarlo:
#include <stdbool.h>
Una variable booleana se declara con la palabra clave bool
y solo puede tomar los valores true
o false
:
bool isProgrammingFun = true;
bool isFishTasty = false;
Antes de intentar imprimir las variables booleanas, debes saber que los valores booleanos se devuelven como números enteros:
1
(o cualquier otro número que no sea 0) representatrue
0
representafalse
Por lo tanto, debe utilizar el especificador de formato %d
para imprimir un valor booleano:
Ejemplo
// Crear variables booleanas
bool isProgrammingFun = true;
bool isFishTasty = false;
// Devolver valores booleanos
printf("%d", isProgrammingFun); // Devuelve 1 (true)
printf("%d", isFishTasty); // Devuelve 0 (false)
Inténtalo tú mismo »
Sin embargo, es más común devolver un valor booleano comparando valores y variables.
Comparar valores y variables
Comparar valores es útil en programación porque nos ayuda a encontrar respuestas y tomar decisiones.
Por ejemplo, puede utilizar un operador de comparación, como el mayor que (>
) operador, para comparar dos valores:
Ejemplo
printf("%d", 10 > 9); // Devuelve 1 (verdadero) porque 10 es mayor que 9
Inténtalo tú mismo »
En el ejemplo anterior, puede ver que el valor de retorno es un valor booleano (1
).
También puedes comparar dos variables:
En el siguiente ejemplo, utilizamos el operador igual a (==
) para comparar diferentes valores:
Ejemplo
printf("%d", 10 == 10); // Devuelve 1 (verdadero), porque 10 es igual a 10
printf("%d", 10 == 15); // Devuelve 0 (falso), porque 10 no es igual a 15
printf("%d", 5 == 55); // Devuelve 0 (falso) porque 5 no es igual a 55
Inténtalo tú mismo »
No está limitado a comparar números únicamente. También puedes comparar variables booleanas, o incluso estructuras especiales, como matrices (sobre el cual aprenderá más en un capítulo posterior):
Ejemplo
bool isHamburgerTasty = true;
bool isPizzaTasty = true;
// Descubre si tanto la hamburguesa como la pizza están ricas
printf("%d", isHamburgerTasty == isPizzaTasty);
Inténtalo tú mismo »
Recuerde incluir el archivo de encabezado <stdbool.h>
cuando trabaje con variables bool
.
Ejemplo de la vida real
Pensemos en un "ejemplo de la vida real" en el que necesitamos saber si una persona tiene edad suficiente para votar.
En el siguiente ejemplo, utilizamos el operador de comparación >=
para averiguar si la edad (25
) es mayor que O igual el límite de edad para votar, que se establece en 18
:
Ejemplo
int myAge = 25;
int votingAge = 18;
printf("%d", myAge >= votingAge); // Devuelve 1 (verdadero), lo que significa que los jóvenes de 25 años pueden votar.
Inténtalo tú mismo »
¿Guay, verdad? Un enfoque aún mejor (ya que ahora estamos en racha), sería envolver el código anterior en una declaración if...else
, para que podamos realizar diferentes acciones, dependiendo del resultado:
Ejemplo
Salida "¡Tiene edad suficiente para votar!" si myAge
es mayor o igual a 18
. De lo contrario, se mostrará "No tengo edad suficiente para votar":
int myAge = 25;
int votingAge = 18;
if (myAge >= votingAge) {
printf("¡Tiene edad suficiente para votar!");
} else {
printf("No tiene edad suficiente para votar.");
}
Inténtalo tú mismo »
Los booleanos son la base para todas las comparaciones y condiciones.
Aprenderá más sobre condiciones (if...else
) en el próximo capítulo.