CodeGym /Cursos /C# SELF /Tipo lógico bool y operaciones lógicas

Tipo lógico bool y operaciones lógicas

C# SELF
Nivel 3, Lección 3
Disponible

1. Tipo de dato lógico: bool

Como ya vimos, en C# hay un operador muy útil — if-else. Ejecuta un bloque de comandos si la condición entre paréntesis es verdadera, y otro bloque si la condición es falsa.

Para trabajar cómodamente con expresiones que pueden ser verdaderas o falsas, en C# añadieron un tipo especial — bool. Su principal característica es que las variables de este tipo solo pueden tener dos valores: true (verdadero) y false (falso).

No puedes asignar ningún otro valor a una variable de tipo bool. El compilador no te lo va a permitir.

Ejemplos de variables de tipo bool:

bool isAdult = true;
bool hasMoney = false;
Ejemplo de declaración de variables de tipo bool

Una variable de tipo bool solo tiene dos valores — true (verdadero) y false (falso). ¡Eso es todo! Casi como un test exitoso — o "pasó", o "falló" (ups).

2. Operaciones de comparación

¿Y para qué sirve un tipo tan simple? El verdadero poder de bool aparece cuando construimos expresiones lógicas. Normalmente se obtienen usando operadores de comparación.

Operador Significado Ejemplo Valor
== Igual
a == b
true o false
!= No igual
a != b
true o false
> Mayor
a > b
true o false
< Menor
a < b
true o false
>= Mayor o igual
a >= b
true o false
<= Menor o igual
a <= b
true o false

Ejemplo:

int age = 20;
bool isAdult = age >= 18;   // true (20 mayor o igual que 18)
bool isTeenager = age >= 13 && age < 18; // false (20 no es menor que 18)
bool isEven = age % 2 == 0; // true (20 es divisible por 2 sin resto)

isAdult aquí será true, porque 20 – eso sí es "adulto".

Punto importante 1:

No puedes separar los operadores que tienen dos símbolos.


a < = 10
speed > = max
age = = 18
time ! = 0
¡No escribas así! Los operadores de comparación deben ir juntos: <=, >=, ==, !=

Punto importante 2:

Ojo, no existen los operadores => y =<: solo existen <= y >=. Si escribes a =< 3, tu código simplemente no va a compilar.

Punto importante 3:

En C# no puedes escribir una expresión como 18 < age < 65. Porque la expresión 18 < age tendrá el valor true o false. Y comparar true < 65 (tipos diferentes) no se puede. Al menos, no en C#.

3. Operaciones lógicas

En C# no puedes escribir la expresión 18 < age < 65 — es sintácticamente incorrecta y el programa no va a compilar.

Pero sí puedes escribirlo así:


(18 < age) Y (age < 65)
Expresión lógica con dos condiciones (en ruso)

Por supuesto, en vez de la palabra Y ahí va otro operador lógico, y justo ahora vamos a hablar de ellos.

En C# hay tres operadores lógicos: AND (y), OR (o) y NOT (no).

Buena noticia: usando paréntesis puedes construir expresiones lógicas tan complejas como quieras.
Mala noticia: los desarrolladores de C# decidieron usar los símbolos de C++ en vez de las palabras and, or y not.

Operador lógico Esperado Realidad
Y (∧) and &&
O (∨) or ||
NO (¬) not !

Aquí tienes algunos ejemplos de operadores lógicos en C#:

Expresión Traducción Explicación
(0 < a) && (a < 100) (0 < a) and (a < 100) (0 < a) Y (a < 100)
(!a) && (!b) (not a) and (not b) (NO a) Y (NO b)
!(!a || !b) not((not a) or (not b)) NO((NO a) O (NO b))

4. Tablas de verdad

Vamos a repasar rápidamente las operaciones lógicas.

Operador AND

El operador AND, también llamado Y, o &&, o conjunción, o multiplicación lógica.

Expresión Resultado
true && true true
true && false false
false && true false
false && false false

En otras palabras, el resultado de la expresión es true (verdadero) solo si ambos valores en la expresión son true (verdadero). En cualquier otro caso, siempre es false (falso).

Operador OR

El operador OR, también llamado O, o ||, o disyunción, o suma lógica.

Expresión Resultado
true || true true
true || false true
false || true true
false || false false

En otras palabras, el resultado de la expresión es true (verdadero) siempre que al menos uno de los valores en la expresión sea true (verdadero). Si ambos son false, entonces el resultado es false.

Operador NOT

El operador NOT, también llamado NO, o !, o inversión.

Expresión Resultado
! true false
! false true

Cambia true a false y viceversa.

Expresiones útiles:

Expresión Resultado
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b

5. Ejemplos de operaciones lógicas: and, or, not

Operación "Y", AND, se escribe &&

El resultado es verdadero solo cuando ambas variables son verdaderas.

int age = 16;
bool hasTicket = true;
bool canAttend = age >= 14 && hasTicket; // true (16 mayor que 14 Y tiene ticket)

Si tienes 14 Y tienes ticket — ¡adelante!

Operación "O", OR, se escribe (||)

El resultado es verdadero si al menos una condición es verdadera.

bool isAdmin = false;
bool isModerator = true;
bool canEdit = isAdmin || isModerator; // true (puedes editar si al menos uno es true)

Si eres admin O moderador — ¡dale a los botones!

Operación "NO", NOT, se escribe (!)

El inversor convierte verdadero en falso y viceversa.

bool isWeekend = false;
bool shouldGoToWork = !isWeekend; // true (si no es fin de semana, a currar)

Si NO es fin de semana — ¡toca levantarse!

Combinando: crea condiciones tan complejas como quieras

Puedes combinar todas las operaciones lógicas que quieras (mejor no pasarse, para que no salga algo tipo "si no NO no NO no eres admin..."). Los paréntesis se pueden (¡y se deben!) usar para que quede claro.

Ejemplo:

int age = 17;
bool hasTicket = false;
bool isVip = true;

bool canGo = (age >= 18 && hasTicket) || isVip; // true, porque isVip = true

En este ejemplo la lógica es: si la persona es mayor de edad y tiene ticket, o si es VIP — pasa. Si no es VIP — solo si es adulto y tiene ticket.

2
Tarea
C# SELF, nivel 3, lección 3
Bloqueada
Expresiones básicas usando el tipo bool
Expresiones básicas usando el tipo bool
2
Tarea
C# SELF, nivel 3, lección 3
Bloqueada
Comprobación de mayoría de edad y estado
Comprobación de mayoría de edad y estado
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION