En la anterior entrega comenzamos a estudiar los operadores, vimos el de asignación y los aritméticos, ahora pasaremos a los de comparación. No los vimos todos en una entrega porque se hubiera hecho demasiado extensa.
Operadores de comparación:
Los operadores de comparación sirven para crear condiciones que regulen nuestro programa. Las estructuras de control (regidas por comparaciones) las veremos un poco más adelante. Los operadores de comparación devuelven el valor 0 si la condición no se cumple y un valor distinto si se cumple.A continuación indicaré los operadores de comparación que veremos en esta guía:
Imaginaos que x = 2, y = 4, numero = 6 y a = 1
== igual que Ejemplo: 4 == 5; /* Devolvería 0 ya que no se cumple */
¡= distinto que Ejemplo x ¡= 0; /* Devolvería un valor distinto de 0 */
> mayor que Ejemplo 5 > 3; /* Devolvería un valor distinto de 0 */
< menor que Ejemplo 3 < 5; /* Devolvería un valor distinto de 0 */
<= menor o igual que Ejemplo x <= y; /* Devolvería un valor distinto de 0 */
>= mayor o igual que Ejemplo a >= numero; /* Devolvería 0 */
Voy a escribir un programa y deberéis tratar de averiguar si aparecerá 0 o un valor distinto en cada printf. Una vez lo penséis podéis averiguarlo compilando el programa:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a = 3, b = 5, c = 3; d = -1, e = 0;
printf(“a es igual a c: %i n”, a == c);
printf(“a es igual a b: %in”, a == b);
printf(“b es distinto de c: %in”, b ¡= c);
printf(“e es menor o igual que d: %in”, e <= d);
system(“pause”);
return 0;
}
Podéis probar con otras comparaciones para intentar averiguar los resultados antes de probarlo en el PC.
Operadores and y or:
A veces necesitaremos comprobar que se cumple una condición y otra o que se cumple una condición u otra. Hay que darse cuenta de que son cosas distintas. No es lo mismo comer patatas Y filete que patatas O filetes, de la segunda manera nos podremos quedar con hambre. Para eso usaremos los operadores and y or.
Podéis comprobar qué valores devuelven las siguientes sentencias, colocándolas en el programa anterior (se colocaría donde están las expresiones algebraicas en los printf).
(a < b) && (c > d) a es menor que b Y c es mayor que d
(a == c) || (e >= d) a es igual a c O e es menor o igual que d
Daros cuenta de que los paréntesis actúan como en matemáticas, dándole preferencia a unos operadores u otros. En C la prioridad de los operadores es importante, normalmente funcionan como en matemáticas (paréntesis, producto, cociente, suma y resta de izquierda a derecha). Más o menos así, en caso de duda utilizar algún paréntesis de más.
Dentro de un par de entregas haremos un programa que resumirá lo que habremos visto hasta entonces. Desarrollaremos una pequeña calculadora. Espero que esto motive a la gente para seguir practicando. Deberíais hacer algunos ejercicios con este tipo de operadores. Los operadores de comparación no sirven para mucho por sí mismos pero si en las estructuras de selección. A alguno os sonara lo de: si se cumple esto, entonces hacer lo siguiente. Eso es lo que veremos en los siguientes capítulos, además de recibir datos del usuario por medio del teclado.
Números anteriores de “Programación de videojuegos”.