Los operadores en C# son símbolos que realizan cálculos, comparaciones o evaluaciones lógicas sobre uno o más valores.
En esta lección aprenderás a usar los tres grupos de operadores más importantes: aritméticos, de comparación y lógicos. También verás cómo combinarlos en expresiones prácticas para calcular descuentos, sueldos y condiciones de negocio.
Operadores aritméticos
Un operador aritmético realiza una operación matemática entre dos valores. El resultado es un número.
| Operador | Significado | Ejemplo en código | Resultado |
|---|---|---|---|
+ |
Suma | 10000 + 5000 |
15000 |
- |
Resta | 10000 - 3000 |
7000 |
* |
Multiplicación | 200 * 3 |
600 |
/ |
División | 9000 / 2 |
4500 |
% |
Módulo (residuo) | 10 % 3 |
1 |
El operador % devuelve el residuo de una división. Se usa, por ejemplo, para saber si un número es par o impar.
Ejemplo 1 — Calcular el sueldo neto en una empresa
Supón que trabajas en FEMSA y recibes un sueldo bruto de $18,500 al mes. El IMSS descuenta $1,200 y el ISR descuenta $950.
decimal sueldoBruto = 18500m;
decimal descuentoIMSS = 1200m;
decimal descuentoISR = 950m;
decimal sueldoNeto = sueldoBruto - descuentoIMSS - descuentoISR;
Console.WriteLine("Sueldo neto: $" + sueldoNeto);
Salida en consola:
Sueldo neto: $16,350
Usamos decimal porque se trata de dinero. Recuerda agregar la m al final de cada valor en el código fuente.
Ejemplo 2 — Calcular el precio con descuento en Liverpool
Liverpool aplica un descuento del 15 % a un artículo que cuesta $3,200.
decimal precioOriginal = 3200m;
decimal porcentajeDescuento = 0.15m;
decimal montoDescuento = precioOriginal * porcentajeDescuento;
decimal precioFinal = precioOriginal - montoDescuento;
Console.WriteLine("Descuento: $" + montoDescuento);
Console.WriteLine("Precio final: $" + precioFinal);
Salida en consola:
Descuento: $480
Precio final: $2,720
Nota que separamos el cálculo en dos pasos. Esto hace el código más fácil de leer y depurar.
Ejemplo 3 — Verificar si una cantidad de productos es par
Un almacén de Bimbo quiere saber si el número de cajas en existencia es par o impar.
int cantidadCajas = 47;
int residuo = cantidadCajas % 2;
Console.WriteLine("Residuo: " + residuo);
Salida en consola:
Residuo: 1
Cuando el residuo es 0, la cantidad es par. Cuando es 1, es impar.
Operadores de comparación
Un operador de comparación compara dos valores y devuelve un resultado de tipo bool: true (verdadero) o false (falso).
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
== |
Igual a | 5 == 5 |
true |
!= |
Diferente de | 5 != 3 |
true |
> |
Mayor que | 10 > 7 |
true |
< |
Menor que | 3 < 1 |
false |
>= |
Mayor o igual que | 5 >= 5 |
true |
<= |
Menor o igual que | 4 <= 6 |
true |
Estos operadores se usan con frecuencia en condiciones if, que verás en la siguiente lección.
Ejemplo 4 — Verificar si un vendedor alcanzó su meta en Mercado Libre
Un vendedor tiene una meta de $25,000 en ventas mensuales. Quieres saber si la alcanzó.
decimal metaVentas = 25000m;
decimal ventasReales = 27300m;
bool metaAlcanzada = ventasReales >= metaVentas;
Console.WriteLine("¿Meta alcanzada? " + metaAlcanzada);
Salida en consola:
¿Meta alcanzada? True
La variable metaAlcanzada guarda el resultado true o false de la comparación.
Operadores lógicos
Un operador lógico combina dos o más condiciones booleanas en una sola expresión.
| Operador | Significado | Resultado |
|---|---|---|
&& |
Y (AND) | true solo si ambas condiciones son true |
|| |
O (OR) | true si al menos una condición es true |
! |
NO (NOT) | Invierte el valor: true se vuelve false |
Ejemplo 5 — Aplicar un descuento con dos condiciones
Una tienda en línea aplica el 20 % de descuento solo si el cliente tiene membresía activa y su compra supera $1,500.
bool tieneMembresía = true;
decimal totalCompra = 1800m;
bool aplicaDescuento = tieneMembresía && (totalCompra > 1500m);
Console.WriteLine("¿Aplica descuento? " + aplicaDescuento);
Salida en consola:
¿Aplica descuento? True
Si cualquiera de las dos condiciones fuera false, la variable aplicaDescuento sería false.
Ejemplo 6 — Verificar elegibilidad para un bono
En una empresa, un empleado recibe bono si tiene más de 2 años de antigüedad o si su calificación de desempeño es mayor a 9.
int añosAntigüedad = 1;
decimal calificacionDesempeño = 9.5m;
bool recibesBono = (añosAntigüedad > 2) || (calificacionDesempeño > 9m);
Console.WriteLine("¿Recibes bono? " + recibesBono);
Salida en consola:
¿Recibes bono? True
Aunque no tiene los 2 años de antigüedad, la calificación alta activa el bono gracias al operador ||.
El orden de las operaciones
C# respeta el orden matemático estándar: primero multiplicación y división, luego suma y resta. Puedes usar paréntesis para forzar un orden diferente.
// Sin paréntesis — resultado incorrecto para un descuento
decimal resultadoMal = 5000m - 500m * 0.10m; // 5000 - 50 = 4950 (incorrecto)
// Con paréntesis — resultado correcto
decimal resultadoBien = (5000m - 500m) * 0.10m; // 4500 * 0.10 = 450
Siempre usa paréntesis cuando la expresión tenga más de dos operadores. Esto evita errores difíciles de detectar.
Errores comunes
Error 1 — Usar = en vez de == para comparar
El símbolo = asigna un valor. El símbolo == compara dos valores. Confundirlos provoca errores de compilación o resultados inesperados.
// INCORRECTO
bool esMayor = (precio = 500m); // Esto asigna, no compara
// CORRECTO
bool esMayor = (precio == 500m); // Esto compara
Error 2 — Dividir enteros y perder decimales
Cuando divides dos valores de tipo int, C# descarta la parte decimal del resultado.
// INCORRECTO — resultado es 3, no 3.5
int resultado = 7 / 2;
// CORRECTO — usa decimal para conservar los centavos
decimal resultado = 7m / 2m;
Este error es muy frecuente al calcular porcentajes o promedios de ventas.
Error 3 — Olvidar paréntesis en expresiones compuestas
Una expresión como a + b * c no es lo mismo que (a + b) * c. Escribe siempre los paréntesis cuando tengas dudas sobre el orden de evaluación.
Error 4 — Mezclar tipos incompatibles sin conversión
C# no permite sumar un int con un decimal directamente sin convertir el tipo. Usa el sufijo m o una conversión explícita para evitar errores de compilación.
int cantidad = 3;
decimal precioUnitario = 250m;
// CORRECTO — convierte el int a decimal
decimal total = (decimal)cantidad * precioUnitario;
Resumen de operadores
| Grupo | Operadores principales | Tipo de resultado |
|---|---|---|
| Aritméticos | +, -, *, /, % |
Número (int, decimal) |
| Comparación | ==, !=, >, <, >=, <= |
Booleano (bool) |
| Lógicos | &&, ||, ! |
Booleano (bool) |
Conocer estos tres grupos te permite construir cualquier cálculo o condición básica en tus programas.