[CURSO] Programación en Java

Iniciado por 3n31ch, 13 Mayo 2017, 08:24 AM

0 Miembros y 1 Visitante están viendo este tema.

3n31ch

#10
Operadores Lógicos y Relacionales

Los operadores lógicos y relacionales son una base fundamental en la programación, y aunque en este tutorial haremos hincapié en 9 (tranquilo seguro ya los conoces) también mencionare tres más que por alguna razón han sido excluidos en gran cantidad de libros y tutoriales.



Operadores Relacionales

Primero empecemos los operadores relacionales. Disponemos de 6 y nos permiten comparar dos valores. Si el resultado de nuestra comparación es correcto la expresión es considerada verdadera o true, por el contrario, si la comparación es incorrecta es considerada falsa o false. Por ejemplo:

Para la expresión:

5 < 8 (5 menor que 8)

El resultado es verdadero, ósea: true

Por otro lado, si la expresión es:

2 > 17 (2 mayor que 17)

Resulta evidente que la expresión es falsa, ósea: false.


Este concepto puede resultar "estúpido" o simple, sin embargo, es esencial en la programación. A continuación, veras una tabla en donde describo los 6 operadores relacionales:




   
   
   
   
   
   
   
OperadorNombreEjemploSignificado
<Menor quea<ba es menor que b
>Mayor quea>ba es mayor que b
==Igual quea==ba es igual que b
!=Distinto aa!=ba es distinto a b
<=Menor o igual aa<=ba es menor o igual a b
>=Mayor o igual aa>=ba es mayor o igual a b

El valor resultante que arroja una relación como las descritas anteriormente se denominan booleanos, puesto que solo pueden generar dos valores: true o false.
Un ejemplo de código seria el siguiente:

Código (java) [Seleccionar]
int a = 5;
int b = 7;
boolean c = a > b;
System.out.println("Resultado: " + c);


Debido a que a es menor que b, el resultado de c será false.



Operadores Lógicos

Los operadores lógicos son expresiones lógicas que permiten crear condiciones compuestas como por ejemplo saber si dos operaciones relacionales son verdaderas, o si una de ellas lo es.
Los anteriores se basan en las "tablas de la verdad" y en java disponemos de 3 ampliamente usados:






NombreDefinición
ANDVerdadero solo si los dos elementos comparados son verdaderos
ORVerdadero si al menos uno de los elementos comparados es verdadero
NOTCambia el valor de verdadero a falso o viceversa

Estos operadores son representados de la siguiente forma:


OperadorNombreEjemplo
&&ANDa<b && b<c
||ORa<b || b<c
!NOT!(a<b)

El valor resultante también es booleana (verdadero o falso).
Un ejemplo de código es el siguiente:

Código (java) [Seleccionar]
boolean a = 4 < 4;
boolean b = 5 > 2;
       
boolean and = a&&b;
boolean or =  a||b;
boolean not = !and;
       
System.out.println("and " + and);
System.out.println("or " + or);
System.out.println("not " + not);


El resultado and es falso puesto que es necesario que las dos expresiones sean verdaderas, mientras que el resultado de or es verdadero puesto que solo es necesario que una de estas lo sea. Y el resultado de not es verdadero, ya que es el inverso de and (en este ejemplo).

Cabe resaltar que estos operadores pueden ser "concadenados" como en el siguiente ejemplo:

Código (java) [Seleccionar]
boolean bool = true || false && true && !false;
System.out.println(bool);


El orden de prioridad en que se leen las operaciones lógicas son las siguientes: not, and y or. (Siendo not el primero y or del ultimo).
Cabe destacar que también puedes hacer uso de paréntesis para dar preferencia a un conjunto de operaciones.



Otros Operadores Lógicos

Existen otros tres operadores lógicos, los cuales son menos usados, pero existen:

Nombre   Definición
XOR   Verdadero solo si uno de los elementos es verdadero (si el otro también lo entonces es falso)
bitwise AND    Verdadero si todos los elementos son verdaderos. Evalúa todas las comparaciones, sin importar si alguna evaluación previa es falsa.
bitwise OR   Verdadero si al menos uno de los elementos es verdadero. Evalúa todas las comparaciones, sin importar si alguna evaluación previa es verdadera.

El XOR o OR Exclusivo es útil para cuando solo queremos que una de las comparaciones sea verdadera. Los casos en que se puede aplicar este operador son contados con las manos, pero es bueno tenerlo en consideración. Se usa de la siguiente manera:
Código (java) [Seleccionar]
boolean bool = true ^ true;
boolean bool2 = true ^ false;
System.out.println(bool + " " + bool2);


El operador utilizado es ^ y el resultado entregado por el extracto de código anterior es: true false

El caso de los bitwise AND y OR, son especiales, y veremos su utilidad en una segunda parte de este tutorial (después de abordar otros conceptos necesarios). Se pueden usar de la siguiente manera:
Código (java) [Seleccionar]
boolean bool = true & true;
boolean bool2 = true | false;
System.out.println(bool + " " + bool2);


El operador utilizado es idéntico al AND y al OR, solo que en vez de ser dos caracteres es uno. Virtualmente funcionaran exactamente como los AND y OR regulares, pero por ahora es mejor que uses los AND y OR regulares descritos en la sección anterior.


Eso es todo por ahora. Cualquier duda me la pueden hacer por MP, este tema es muy importante y no sé si lo pude explicar de la mejor forma posible.
También pido disculpas por el tiempo que me demore en publicar este tutorial. Tuve algunas obligaciones laborales y educativas que me quitaron mucho tiempo pero ahora  intentare seguir con la frecuencia regular.




RECURSOS ASOCIADOS A ESTE TUTORIAL:
•   Video Tutorial – Operadores lógicos y Operacionales
•   Tutorial descargable .DOCX

RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.