Codificación aprenderaprogramar.com: CU00519F
OPERADORES RELACIONALES Y OPERADORES LÓGICOS EN C
Se llaman operadores relacionales o de comparación a aquellos que permiten comparar dos valores evaluando si se relacionan cumpliendo el ser menor uno que otro, mayor uno que otro, igual uno que otro, etc. Los operadores lógicos permiten además introducir nexos entre condiciones como “y se cumple también que” ó . “o se cumple que”.
Los operadores de comparación o relacionales básicos en C son:
Operador |
Significado |
Operador < |
Menor que |
Operador <= |
Menor o igual que |
Operador > |
Mayor que |
Operador >= |
Mayor o igual que |
Operador == |
Igual a |
Operador != |
Distinto de ó no igual que |
Es importante tener en cuenta que para comparar si una variable A es igual a otra debemos usar A == B en lugar de A = B. El doble signo igual se usa en comparaciones mientras que el signo igual sencillo se usa en asignaciones.
Para determinar si una variable A tiene distinto contenido que una variable B debemos usar A != B. En C no se admite la sintaxis A <> B que usamos en pseudocódigo.
Suponiendo que la variable A tiene un valor A = 5 y la variable B un valor B = 7 podríamos plantear las siguientes expresiones:
Expresión |
Resultado |
Ejemplo código |
A == B |
0 (falso) |
printf ("A == B vale %d\n", (A == B) ); |
A != B |
1 (verdadero) |
printf ("A != B vale %d\n", (A != B) ); |
A > B |
0 (falso) |
printf ("A > B vale %d\n", (A > B) ); |
A >= B |
0 (falso) |
printf ("A >= B vale %d\n", (A >= B) ); |
A < B |
1 (verdadero) |
printf ("A < B vale %d\n", (A < B) ); |
A <= B |
1 (verdadero) |
printf ("A <= B vale %d\n", (A <= B) ); |
Hay que tener en cuenta que en C al no tener el tipo booleano entre sus tipos predefinidos el resultado de evaluar estas expresiones es un cero ó un uno, equivaliendo el cero a “falso” y el uno a “verdadero”.
Ejecuta un programa definiendo las variables A y B como de tipo entero, asígnales los valores correspondientes y comprueba las expresiones usando el código de ejemplo que hemos indicado. Define otras variables y haz algunas comprobaciones por tu cuenta.
OPERADORES LÓGICOS EN C
Los operadores lógicos básicos en C son los siguientes:
Operador |
Significado |
Operador && |
Operador lógico and |
Operador || |
Operador lógico or |
Operador ! |
Operador lógico not |
Suponiendo que tenemos cuatro variables A, B, C y D cuyos valores se han establecido en A = 5, B = 7, C = 2, D = 5 podríamos evaluar estas expresiones:
Expresión |
Pregunta equivalente |
Resultado |
Ejemplo código |
(A == B) && (A < B) |
¿Es A igual a B y A menor que C? |
0 (falso) |
printf ("Pregunta (A == B) && (A < B) vale %d\n", (A == B) && (A < B)); |
(A == 5) || (A > 7) |
¿Es A igual a 5 ó es A mayor que 7? |
1 (verdadero) |
printf ("Pregunta (A == 5) || (A > 7) vale %d\n", (A == 5) || (A > 7)); |
! ( A == 5 ) |
¿A es NO igual a 5? |
0 (falso) |
printf ("Pregunta ! ( A == 5 ) vale %d\n", ! ( A == 5 )); |
Ejecuta un programa definiendo las cuatro variables A, B, C, D como de tipo entero, asígnales los valores correspondientes y comprueba las expresiones usando el código de ejemplo que hemos indicado. Define otras variables y haz algunas comprobaciones por tu cuenta. Es importante que escribas tu propio código y trates de razonar sobre los resultados esperados y los resultados obtenidos. En muchas ocasiones el resultado obtenido no será el esperado y como programador deberás de ser capaz de determinar el por qué de estas divergencias.
Iremos adquiriendo soltura en el uso de estos operadores cuando realicemos ejercicios usando expresiones condionales.
Ten en cuenta que C tiene un gran número de operadores, de los que aquí solo hemos expuesto los más básicos o habituales.
EJERCICIO
Dadas las variables de tipo entero con valores A = 5, B = 3, C = -12 indicar si la evaluación de estas expresiones daría como resultado verdadero o falso:
a) A > 3 b) A > C c) A < C
d) B < C e) B != C f) A == 3
g) A * B == 15 h) A * B == -30 i) C / B < A
j) C / B == -10 k) C / B == -4 l) A + B + C == 5
m) (A+B == 8) && (A-B == 2) n) (A+B == 8) || (A-B == 6)
o) A > 3 && B > 3 && C < 3 p) A > 3 && B >= 3 && C < -3
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.