Domine operadores relacionales y lógicos en C++: Guía clara para toma de decisiones
En C++, los operadores relacionales y lógicos comparan dos o más operandos y devuelven valores true o false.
Usamos estos operadores en la toma de decisiones.
Operadores relacionales en C++
Un operador relacional se usa para comprobar la relación entre dos operandos. Por ejemplo,
// comprueba si a es mayor que b a > b;
Aquí, > es un operador relacional. Comprueba si a es mayor que b o no.
Si la relación es true, devuelve 1, mientras que si la relación es false, devuelve 0.
La siguiente tabla resume los operadores relacionales usados en C++.
| Operador | Significado | Ejemplo |
|---|---|---|
== | Igual a | 3 == 5 nos da false |
!= | No igual a | 3 != 5 nos da true |
> | Mayor que | 3 > 5 nos da false |
< | Menor que | 3 < 5 nos da true |
>= | Mayor o igual que | 3 >= 5 nos da false |
<= | Menor o igual que | 3 <= 5 nos da true |
Operador ==
El operador de igualdad == devuelve
true- si ambos operandos son iguales o el mismofalse- si los operandos son desiguales
Por ejemplo,
int x = 10; int y = 15; int z = 10; x == y // false x == z // true
Nota: El operador relacional == no es lo mismo que el operador de asignación =. El operador de asignación = asigna un valor a una variable, constante, array o vector. No compara dos operandos.
Operador !=
El operador de desigualdad != devuelve
true- si ambos operandos son desigualesfalse- si ambos operandos son iguales.
Por ejemplo,
int x = 10; int y = 15; int z = 10; x != y // true x != z // false
Operador >
El operador mayor que > devuelve
true- si el operando izquierdo es mayor que el derechofalse- si el operando izquierdo es menor que el derecho
Por ejemplo,
int x = 10; int y = 15; x > y // false y > x // true
Operador <
El operador menor que < devuelve
true- si el operando izquierdo es menor que el derechofalse- si el operando izquierdo es mayor que el derecho
Por ejemplo,
int x = 10; int y = 15; x < y // true y < x // false
Operador >=
El operador mayor o igual que >= devuelve
true- si el operando izquierdo es mayor o igual al derechofalse- si el operando izquierdo es menor que el derecho
Por ejemplo,
int x = 10; int y = 15; int z = 10; x >= y // false y >= x // true z >= x // true
Operador <=
El operador menor o igual que <= devuelve
true- si el operando izquierdo es menor o igual al derechofalse- si el operando izquierdo es mayor que el derecho
Por ejemplo,
int x = 10; int y = 15; x > y // false y > x // true
Para aprender cómo se pueden usar los operadores relacionales con cadenas, consulte nuestro tutorial aquí.
Operadores lógicos en C++
Usamos operadores lógicos para comprobar si una expresión es true o false. Si la expresión es true, devuelve 1, mientras que si la expresión es false, devuelve 0.
| Operador | Ejemplo | Significado |
|---|---|---|
&& | expresión1 && expresión 2 | AND lógico. True solo si todos los operandos son true. |
|| | expresión1 || expresión 2 | OR lógico. True si al menos uno de los operandos es true. |
! | !expresión | NOT lógico. True solo si el operando es false. |
Operador AND lógico en C++
El operador AND lógico && devuelve
true- si y solo si todos los operandos sontrue.false- si uno o más operandos sonfalse.
Tabla de verdad del operador &&
Sean a y b dos operandos. 0 representa false mientras que 1 representa true. Entonces,
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Como vemos en la tabla de verdad anterior, el operador && devuelve true solo si tanto a como b son true.
Nota: El operador AND lógico && no debe confundirse con el operador AND bit a bit &.
Ejemplo 1: Operador OR en C++
// Programa C++ demostrando tabla de verdad del operador && #include <iostream> using namespace std; int main() { int a = 5; int b = 9; // false && false = false cout << ((a == 0) && (a > b)) << endl; // false && true = false cout << ((a == 0) && (a < b)) << endl; // true && false = false cout << ((a == 5) && (a > b)) << endl; // true && true = true cout << ((a == 5) && (a < b)) << endl; return 0; }
Salida
0 0 0 1
En este programa, declaramos e inicializamos dos variables int a y b con valores 5 y 9 respectivamente. Luego imprimimos una expresión lógica
((a == 0) && (a > b))
Aquí, a == 0 evalúa a false ya que el valor de a es 5. a > b también es false ya que el valor de a es menor que el de b. Luego usamos el operador AND && para combinar estas dos expresiones.
De la tabla de verdad del operador &&, sabemos que false && false (i.e. 0 && 0) resulta en una evaluación de false (0). Este es el resultado que obtenemos en la salida.
De manera similar, evaluamos otras tres expresiones que demuestran completamente la tabla de verdad del operador &&.
Operador OR lógico en C++
El operador OR lógico || devuelve
true- si uno o más de los operandos sontrue.false- si y solo si todos los operandos sonfalse.
Tabla de verdad del operador ||
Sean a y b dos operandos. Entonces,
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Como vemos en la tabla de verdad anterior, el operador || devuelve false solo si tanto a como b son false.
Ejemplo 2: Operador OR en C++
// Programa C++ demostrando tabla de verdad del operador || #include <iostream> using namespace std; int main() { int a = 5; int b = 9; // false || false = false cout << ((a == 0) || (a > b)) << endl; // false || true = true cout << ((a == 0) || (a < b)) << endl; // true || false = true cout << ((a == 5) || (a > b)) << endl; // true || true = true cout << ((a == 5) || (a < b)) << endl; return 0; }
Salida
0 1 1 1
En este programa, declaramos e inicializamos dos variables int a y b con valores 5 y 9 respectivamente. Luego imprimimos una expresión lógica
((a == 0) || (a > b))
Aquí, a == 0 evalúa a false ya que el valor de a es 5. a > b también es false ya que el valor de a es menor que el de b. Luego usamos el operador OR || para combinar estas dos expresiones.
De la tabla de verdad del operador ||, sabemos que false || false (i.e. 0 || 0) resulta en una evaluación de false (0). Este es el resultado que obtenemos en la salida.
De manera similar, evaluamos otras tres expresiones que demuestran completamente la tabla de verdad del operador ||.
Operador NOT lógico ! en C++
El operador NOT lógico ! es un operador unario, es decir, toma solo un operando.
Devuelve true cuando el operando es false, y false cuando el operando es true.
Tabla de verdad del operador !
Sea a un operando. Entonces,
Ejemplo 3: Operador ! en C++
// Programa C++ demostrando tabla de verdad del operador ! #include <iostream> using namespace std; int main() { int a = 5; // !false = true cout << !(a == 0) << endl; // !true = false cout << !(a == 5) << endl; return 0; }
Salida
1 0
En este programa, declaramos e inicializamos una variable int a con el valor 5. Luego imprimimos una expresión lógica
!(a == 0)
Aquí, a == 0 evalúa a false ya que el valor de a es 5. Sin embargo, usamos el operador NOT ! en a == 0. Como a == 0 evalúa a false, el operador ! invierte el resultado de a == 0 y el resultado final es true.
De manera similar, la expresión !(a == 5) finalmente devuelve false porque a == 5 es true.
Lenguaje C
- Entendiendo los punteros en C++: guía práctica
- Sobreescritura de funciones en C++ explicada: ejemplos prácticos y mejores prácticas
- Operadores en C# – Guía completa de operadores en C#
- Lista de inicialización de constructores en C++: Por qué y cómo usarla
- Operaciones con Archivos en C# – Guía Práctica
- Dominando las Sentencias Using en C#: Importaciones, Alias y Directivas Estáticas
- Dominando std::vector en C++: Arrays dinámicos, iteradores y ejemplos prácticos
- Delegados en C#: Guía completa de referencias a funciones y eventos
- Dominando la herencia en C++: construya clases potentes con código reutilizable
- Enumeraciones (Enums) en C# – Definición, Ejemplo y Uso
- Reflexión en C#: Descubrimiento de tipos en tiempo de ejecución y programación dinámica