Los operadores relacionales y lógicos son aquellos que, al utilizarse en una expresión, el resultado es un valor lógico (true o false).

Los operadores relacionales permiten comparar dos valores numéricos. Son los siguientes:
  • > (mayor que)
  • >= (mayor o igual que)
  • < (menor que)
  • <= (menor o igual que)
  • == (igual que)
  • != (distinto de)

Cada uno de estos operadores relacionales deben emplearse con dos valores numéricos a ambos lados, pudiendo ser dos valores literales o resultados de expresiones aritméticas. Ejemplos:
  • 4 > 3 resulta true.
  • 7 <= 2 resulta false.
  • 5 + 2 == 4 + 3 resulta true.
  • 4 * 3 != 12 resulta false.

Los operadores lógicos permiten unir valores o expresiones lógicas, obteniendo como resultado si es verdadera o falsa la expresión combinada. Son los siguientes:
  • && (Y lógico - conjunción)
  • || (O lógico - disyunción)
  • ! (NO lógico)

Los operadores && y || deben utilizarse con dos valores o expresiones lógicas a ambos lados, mientras que el operador de negación ! sólo se aplica al valor o expresión lógica que tenga a su derecha.

El resultado que se obtiene utilizando estos operadores se obtiene de la siguiente tabla de verdad:
  • El operador Y resulta true sólo si ambos operandos son true:
    • true && true resulta true
    • true && false resulta false
    • false && true resulta false
    • false && false resulta false
  • El operador O resulta true si al menos uno de los operandos son true:
    • true || true resulta true
    • true || false resulta true
    • false || true resulta true
    • false || false resulta false
  • El operador NO resulta true si el operando es false:
    • !true resulta false.
    • !false resulta true.

Estos operadores también tiene un criterio de prioridad como en el caso de los operadores aritméticos:
  1. !
  2. &&
  3. ||
Para cambiar la prioridad se pueden emplear paréntesis. Además, hay que tener en cuenta que estos operadores relaciones y lógicos tiene menos prioridad que los operadores aritméticos.
  1. Operadores aritméticos (* / % + -)
  2. Operadores relacionales (< <= > >= == !=)
  3. Operadores lógicos (! && ||)

Ejemplos:
  • 4 > 3 && 5 <= 5 resulta true, porque las dos expresiones son true.
  • 4 > 3 && 5 != 5 resulta false, porque al menos una expresión es false.
  • 4 > 3 || 5 != 5 resulta true, porque al menos una expresión es true.
  • 4 > 3 && !(5 != 5) resulta true, porque las dos expresiones son true.
  • 7==4+3 || 6<2 && 5>=8 resulta true porque se evalúa antes el operador && que el operador ||, según las prioridades de estos operadores:
    true || false && false = true || false = true.
  • (7==4+3 || 6<2) && 5>=8 resulta false porque en este caso, con los paréntesis, se evalúa antes el operador || que el operador &&:
    (true || false) && false = true && false = false.
  • 7 > 4 && > 3 ocasiona un ERROR de compilación, porque el operador && no tiene dos valores lógicos a sus lados, debería expresarse como: 7 > 4 && 7 > 3.