Operadores en C | Conjunto 2 (operadores relacionales y lógicos)

Hemos discutido la Introducción a los Operadores en C donde obtuvimos una idea general de qué tipos de Operadores, C y C++ admiten y sus implementaciones básicas. Después de eso, estudiamos Operadores aritméticos donde obtuvimos una comprensión detallada de los tipos y usos de los operadores aritméticos en C y C++. En este artículo, intentemos comprender los tipos y usos de los operadores lógicos y relacionales .
 

Operadores 
relacionales Los operadores relacionales se utilizan para la comparación de dos valores para comprender el tipo de relación que comparten un par de números. Por ejemplo, menor que, mayor que, igual a etc. Veámoslos uno por uno 
 

  1. Operador igual a: representado como ‘==’ , el operador igual a comprueba si los dos operandos dados son iguales o no. Si es así, devuelve verdadero. De lo contrario devuelve falso. Por ejemplo, 5==5 devolverá verdadero.
  2. Operador no igual a: Representado como ‘!=’ , el operador no igual a comprueba si los dos operandos dados son iguales o no. Si no, devuelve verdadero. De lo contrario devuelve falso. Es el complemento booleano exacto del operador ‘==’ . Por ejemplo, 5!=5 devolverá falso.
  3. Operador mayor que: representado como ‘>’ , el operador mayor que verifica si el primer operando es mayor que el segundo operando o no. Si es así, devuelve verdadero. De lo contrario devuelve falso. Por ejemplo, 6>5 devolverá verdadero.
  4. Operador menor que: representado como ‘<‘ , el operador menor que verifica si el primer operando es menor que el segundo operando. Si es así, devuelve verdadero. De lo contrario devuelve falso. Por ejemplo, 6<5 devolverá falso.
  5. Operador mayor o igual que: representado como ‘>=’ , el operador mayor o igual que comprueba si el primer operando es mayor o igual que el segundo operando. Si es así, devuelve verdadero, de lo contrario, devuelve falso. Por ejemplo, 5>=5 devolverá verdadero.
  6. Operador menor o igual que: Representado como ‘<=’ , el operador menor o igual que verifica si el primer operando es menor o igual que el segundo operando. Si es así, devuelve verdadero o falso. Por ejemplo, 5<=5 también devolverá verdadero.

Ejemplos: 
 

C

// C program to demonstrate working of relational operators
#include <stdio.h>
 
int main()
{
    int a = 10, b = 4;
 
    // greater than example
    if (a > b)
        printf("a is greater than b\n");
    else
        printf("a is less than or equal to b\n");
 
    // greater than equal to
    if (a >= b)
        printf("a is greater than or equal to b\n");
    else
        printf("a is lesser than b\n");
 
    // less than example
    if (a < b)
        printf("a is less than b\n");
    else
        printf("a is greater than or equal to b\n");
 
    // lesser than equal to
    if (a <= b)
        printf("a is lesser than or equal to b\n");
    else
        printf("a is greater than b\n");
 
    // equal to
    if (a == b)
        printf("a is equal to b\n");
    else
        printf("a and b are not equal\n");
 
    // not equal to
    if (a != b)
        printf("a is not equal to b\n");
    else
        printf("a is equal b\n");
 
    return 0;
}

C++

// C++ program to demonstrate working of logical operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 10, b = 4;
 
    // greater than example
    if (a > b)
        cout << "a is greater than b\n";
    else
        cout << "a is less than or equal to b\n";
 
    // greater than equal to
    if (a >= b)
        cout << "a is greater than or equal to b\n";
    else
        cout << "a is lesser than b\n";
 
    // less than example
    if (a < b)
        cout << "a is less than b\n";
    else
        cout << "a is greater than or equal to b\n";
 
    // lesser than equal to
    if (a <= b)
        cout << "a is lesser than or equal to b\n";
    else
        cout << "a is greater than b\n";
 
    // equal to
    if (a == b)
        cout << "a is equal to b\n";
    else
        cout << "a and b are not equal\n";
 
    // not equal to
    if (a != b)
        cout << "a is not equal to b\n";
    else
        cout << "a is equal b\n";
 
    return 0;
}
Producción: 

a is greater than b
a is greater than or equal to b
a is greater than or equal to b
a is greater than b
a and b are not equal
a is not equal to b

 

Operadores Lógicos: 
Se utilizan para combinar dos o más condiciones/restricciones o para complementar la evaluación de la condición original bajo consideración. Se describen a continuación: 
 

  1. Operador lógico AND: el operador ‘&&’ devuelve verdadero cuando se cumplen las dos condiciones consideradas. De lo contrario devuelve falso. Por ejemplo, a && b devuelve verdadero cuando tanto a como b son verdaderos (es decir, distintos de cero).
  2. Operador OR lógico: El ‘||’ El operador devuelve verdadero incluso si se cumple una (o ambas) de las condiciones consideradas. De lo contrario devuelve falso. Por ejemplo, un || b devuelve verdadero si uno de aob o ambos son verdaderos (es decir, distintos de cero). Por supuesto, devuelve verdadero cuando tanto a como b son verdaderos.
  3. Operador lógico NOT: El ‘!’ operador devuelve verdadero la condición en consideración no se cumple. De lo contrario devuelve falso. Por ejemplo, !a devuelve verdadero si a es falso, es decir, cuando a=0.

Ejemplos: 
 

C

// C program to demonstrate working of logical operators
#include <stdio.h>
 
int main()
{
    int a = 10, b = 4, c = 10, d = 20;
 
    // logical operators
 
    // logical AND example
    if (a > b && c == d)
        printf("a is greater than b AND c is equal to d\n");
    else
        printf("AND condition not satisfied\n");
 
    // logical OR example
    if (a > b || c == d)
        printf("a is greater than b OR c is equal to d\n");
    else
        printf("Neither a is greater than b nor c is equal "
               " to d\n");
 
    // logical NOT example
    if (!a)
        printf("a is zero\n");
    else
        printf("a is not zero");
 
    return 0;
}

C++

// C++ program to demonstrate working of
// logical operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 10, b = 4, c = 10, d = 20;
 
    // logical operators
 
    // logical AND example
    if (a > b && c == d)
        cout << "a is greater than b AND c is equal to d\n";
    else
        cout << "AND condition not satisfied\n";
 
    // logical OR example
    if (a > b || c == d)
        cout << "a is greater than b OR c is equal to d\n";
    else
        cout << "Neither a is greater than b nor c is equal "
                " to d\n";
 
    // logical NOT example
    if (!a)
        cout << "a is zero\n";
    else
        cout << "a is not zero";
 
    return 0;
}
Producción: 

AND condition not satisfied
a is greater than b OR c is equal to d
a is not zero

 

Cortocircuito en operadores lógicos: 
 

  • En caso de AND lógico , el segundo operando no se evalúa si el primer operando es falso. Por ejemplo, el programa 1 a continuación no imprime «GeeksQuiz» ya que el primer operando del AND lógico en sí mismo es falso. 
     

C

#include <stdbool.h>
#include <stdio.h>
int main()
{
    int a = 10, b = 4;
    bool res = ((a == b) && printf("GeeksQuiz"));
    return 0;
}

C++

#include <iostream>
using namespace std;
 
int main()
{
    int a = 10, b = 4;
    bool res = ((a == b) && cout << "GeeksQuiz");
    return 0;
}
Producción: 

No Output

 

  • Pero debajo del programa imprime «GeeksQuiz» como primer operando de AND lógico es verdadero. 
     

C

#include <stdbool.h>
#include <stdio.h>
int main()
{
    int a = 10, b = 4;
    bool res = ((a != b) && printf("GeeksQuiz"));
    return 0;
}

C++

#include <iostream>
using namespace std;
 
int main()
{
    int a = 10, b = 4;
    bool res = ((a != b) && cout << "GeeksQuiz");
    return 0;
}
Producción: 

GeeksQuiz

 

  • En caso de OR lógico , el segundo operando no se evalúa si el primer operando es verdadero. Por ejemplo, el programa 1 a continuación no muestra «GeeksQuiz» ya que el primer operando del OR lógico en sí mismo es verdadero. 
     

C

#include <stdbool.h>
#include <stdio.h>
int main()
{
    int a = 10, b = 4;
    bool res = ((a != b) || printf("GeeksQuiz"));
    return 0;
}

C++

#include <stdbool.h>
#include <stdio.h>
int main()
{
    int a = 10, b = 4;
    bool res = ((a != b) || cout << "GeeksQuiz");
    return 0;
}
Producción: 

No Output

 

  • Pero el programa a continuación imprime «GeeksQuiz» como primer operando de OR lógico es falso. 
     

C

#include <stdbool.h>
#include <stdio.h>
int main()
{
    int a = 10, b = 4;
    bool res = ((a == b) || printf("GeeksQuiz"));
    return 0;
}

C++

#include <stdbool.h>
#include <stdio.h>
int main()
{
    int a = 10, b = 4;
    bool res = ((a == b) || cout << "GeeksQuiz");
    return 0;
}
Producción: 

GeeksQuiz

 

Cuestionario sobre operadores en C
Este artículo es una contribución de Ayush Jaggi. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *