Original article: C Operator – Logic Operators in C Programming

En este artículo, aprenderás sobre los tres operadores lógicos en C.

Primero, explicaré qué son los operadores en programación y listaré los diferentes tipos de operadores disponibles en C.

Luego, aprenderás el papel que tienen los operadores lógicos y cómo usarlos con la ayuda de ejemplos de código en el camino.

¡Comencemos! ¿Qué es un Operador en Programación de Computadoras?

En programación de computadoras, un operador es un carácter, símbolo, palabra clave o combinación de estos. Determina qué acción se realiza en uno o más operandos.

Un operando es un elemento de datos individual que es manipulado por el operador.

Cada lenguaje de programación de alto nivel define estos caracteres integrados y los utiliza para indicar al compilador que realice operaciones aritméticas, relacionales o lógicas que manipulan elementos de datos y luego devuelven un resultado final.

¿Cuáles son los Diferentes Tipos de Operadores en la Programación en C?

En la programación en C, los operadores caen en una de tres categorías:

Operadores Unarios

Operadores Binarios

Operadores Ternarios

Operadores unarios operan sobre un solo operando. Algunos de los operadores unarios en C son:

  • Operadores aritméticos como el operador de incremento (++), que incrementa el valor del operando en 1. Y el operador de decremento (--), que decrementa el valor del operando en 1.
  • Operadores lógicos como el operador NOT(!). Este operador invierte el valor lógico del operando: cambia true a false y false a true.
  • Operadores a nivel de bits (bitwise) como el operador NOT(~), que cambia cada bit 0 a 1 y cada bit 1 a 0.

Los operadores binarios operan sobre dos operandos. Algunos de los operadores binarios en C son:

  • Operadores aritméticos (+, -, *, /, %): Estos operadores realizan cálculos matemáticos en datos numéricos como la adición, sustracción, multiplicación, división y encontrar el resto.
  • Operadores de igualdad/relacionales (==, !=, >, <, >=, <=): Estos operadores comparan dos valores y determinan si un operando es mayor que, menor que, igual a o no igual a otro operando.
  • Operadores lógicos/condicionales como los operadores AND (&&) y OR (||).
  • Operadores a nivel de bits (&, |, ^, <<, >>): Tratan los elementos de datos como una secuencia de bits (es decir, 0s y 1s).
  • Operadores de asignación (=, +=, -= *=, /=, %=): Asignan un valor específico a una variable.

El operador Ternario (?:) opera en tres operandos. La sintaxis general se parece a la siguiente:

(condición) ? expresión1 : expresión2;

El operador ternario es un operador condicional que puedes usar como una abreviatura para if..else. Realiza comparaciones y genera un resultado.

¿Cuál es el papel de los Operadores Lógicos en la Programación en C?

Los operadores lógicos se utilizan comúnmente en declaraciones condicionales (como las declaraciones if..else), ya que ayudan en la toma de decisiones: determinan qué acción debe tener lugar y qué código debe ejecutarse a continuación según las condiciones que establezcas.

Combina los operadores lógicos con una o múltiples condiciones para crear una expresión lógica.

Los operadores lógicos evalúan la expresión lógica y devuelven un resultado.

El resultado siempre es un valor booleano. Un valor booleano determina si la expresión es verdadera true o falsa false.

Hay tres operadores lógicos en la programación en C: el AND lógico (&&), el OR lógico (||) y el NOT lógico (!).

Vamos a entrar en más detalle sobre cada uno en las siguientes secciones.

Cómo Usar el Operador Lógico AND (&&) en la Programación en C

El operador lógico AND (&&) verifica si todos los operandos son verdaderos: el resultado es verdadero solo cuando todos los operandos son verdaderos.

Aquí está la tabla de verdad para el operador AND (&&) cuando estás trabajando con dos operandos:

Primer Operando Segundo Operando Resultado
true true true
true false false
false true false
false false false

Algo importante a tener en cuenta aquí es que, cuando el primer operando es falso, el segundo operando no se evalúa.

Veamos un ejemplo: El resultado de (10 == 10) && (20 == 20) es verdadero porque ambos operandos son verdaderos: (10 == 10) es verdadero y (20 == 20) es verdadero.

Veamos otro ejemplo: El resultado de (10 == 20) && (20 == 20) es falso porque uno de los operandos es falso: en este caso, el primer operando es falso, por lo que el segundo operando no se evalúa.

Ahora, veamos cómo puedes usar el operador && en una declaración if:

#include <stdio.h>

int main(void) {
  int a = 20;
  int b = 30;

  if (a > 10 && b > 10)
    printf("Ambos números son mayores que 10\n");
}

// salida

// Ambos números son mayores que 10

En el ejemplo anterior, la salida es "Al menos uno de los números es mayor que 10" porque se cumple la condición a > 10 || b > 10 – al menos uno de los operandos es verdadero.

La primera condición, a > 10, es verdadera, por lo que el resultado es verdadero.

Si tanto a como b fueran falsos, no habría salida.

Cómo usar el operador lógico to Use the OR (||) Logical en la programación en C

La operación lógica OR (||) verifica si al menos uno de los operandos es verdadero; el resultado es verdadero si al menos uno de los operandos es verdadero.

Aquí tienes la tabla de verdad para el operador OR (||) cuando estás trabajando con dos operandos:

Primer Operando Segundo Operando Resultado
true true true
true false true
false true true
false false false

Ten en cuenta que con el operador OR (||), si el primer operando es verdadero, entonces el segundo operando no se evalúa.

Veamos un ejemplo: El resultado de (10 == 20) || (20 == 20) es verdadero porque al menos uno de los operandos es verdadero; en este caso, es el segundo operando, incluso si el primer operando es falso.

Veamos otro ejemplo: El resultado de (20 == 20) || (10 == 20) es verdadero porque uno de los operandos es verdadero; en este caso, dado que el primer operando es verdadero, el segundo no se evalúa.

Ahora, veamos cómo puedes usar el operador OR (||) en una declaración if:

#include <stdio.h>

int main(void) {
  int a = 20;
  int b = 5;

  if (a > 10 || b > 10)
    printf("Al menos uno de los números es mayor que 10");
}

En el ejemplo anterior, la salida es "Al menos uno de los números es mayor que 10" porque se cumple la condición a > 10 || b > 10 – al menos uno de los operandos es verdadero.

La primera condición, a > 10, es verdadera, por lo que el resultado es verdadero.

Si tanto a como b fueran falsos, no habría salida.

Cómo Usar el Operador Lógico NOT (!) en la Programación en C

El operador lógico NOT (!) niega el operando – es decir, devuelve lo opuesto al operando.

Si el operando es true, devuelve false.

Y si es false, devuelve true.

Aquí está la tabla de verdad para el operador NOT (!):

Operando Resultado
true false
false true

Veamos un ejemplo: El resultado de !(10 == 10) es false.

La condición 10 == 10 es verdadera, pero el operador ! la niega.

Y veamos otro ejemplo: El resultado de !(10 == 20) es true.

La condición 10 == 20 es falsa, pero el operador ! la niega.

Ahora, revisa el siguiente ejemplo para ver cómo puedes usar el operador NOT (!) en una declaración if:

#include <stdio.h>

int main(void) {
  int a = 20;
  int b = 5;

  if (a > 10 || b > 10)
    printf("Al menos uno de los números es mayor que 10");
}

El resultado es a es mayor que b porque la condición a > b es verdadera.

Sin embargo, si usaste el operador NOT (!), la condición ya no es verdadera, por lo que no habría salida:


#include <stdio.h>

int main(void) {
  int a = 20;
  int b = 5;

  if ( a > b)
    printf("a es mayor que b\n");

Conclusión

¡Y ahí lo tienes! Ahora sabes cómo funcionan los tres operadores lógicos en la programación en C.

Para aprender más sobre C, te recomiendo leer este manual para principiantes en C para familiarizarte con los conceptos básicos del lenguaje.

¡Gracias por leer, y feliz codificación!