MEJOR SITIO PARA DESARROLLADORES WEB
C Idioma. W3Schools en español. Lecciones para principiantes

Ua En De

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) representa true
  • 0 representa false

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:

Ejemplo

int x = 10;
int y = 9;
printf("%d", x > y);
Inténtalo tú mismo »

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.