Realizar operaciones matemáticas
En su núcleo, los equipos son calculadoras increíblemente rápidas. C# admite todas las operaciones matemáticas estándar que cabría esperar, lo que le permite realizar cálculos y guardar los resultados en variables.
Operadores aritméticos
C# usa símbolos estándar para matemáticas básicas:
| Operator | Action | Example | Resultado |
|---|---|---|---|
+ |
Addition | 10 + 3 |
13 |
- |
Subtraction | 10 - 3 |
7 |
* |
Multiplication | 10 * 3 |
30 |
/ |
Division | 10 / 3 |
3 (división de enteros) |
% |
Módulo (resto) | 10 % 3 |
1 |
Puede intentar ejecutar este código usted mismo en el Editor de código de C#.
Comprender el módulo (%)
El operador % modulus devuelve lo que se deja tras la división. Resulta útil comprobar si un número se divide uniformemente:
Console.WriteLine(10 % 2); // Output: 0 (10 is even)
Console.WriteLine(11 % 2); // Output: 1 (11 is odd)
Orden de las operaciones
C# sigue el orden matemático estándar de las operaciones (PEMDAS): paréntesis, multiplicación/división y, a continuación, suma/resta. Use paréntesis para controlar el orden:
int standard = 2 + 3 * 4; // Multiplication first: 14
int forced = (2 + 3) * 4; // Parentheses first: 20
Operadores de asignación compuesta
Un patrón común es actualizar una variable mediante su propio valor, como agregar a una puntuación o restar de un saldo. C# tiene operadores abreviados para esto:
int score = 50;
score = score + 10; // Standard way: score is 60
score += 10; // Shorthand: score is 70
La misma abreviatura funciona para otras operaciones:
| Operator | Meaning | Example | Resultado (a partir de 10) |
|---|---|---|---|
+= |
Añadir y asignar | x += 5 |
15 |
-= |
Restar y asignar | x -= 5 |
5 |
*= |
Multiplicar y asignar | x *= 5 |
50 |
/= |
Dividir y asignar | x /= 5 |
2 |
Operadores de incremento y decremento
Para agregar o restar 1, C# tiene operadores aún más cortos:++ y --:
int count = 5;
count++; // Same as count = count + 1
Console.WriteLine(count); // Output: 6
count--; // Same as count = count - 1
Console.WriteLine(count); // Output: 5
La posición es importante: incremento previo frente al incremento posterior
Los ++ operadores y -- se comportan de forma diferente en función de si aparecen antes o después de la variable:
-
Post-increment (
value++): usa primero el valor actual y, a continuación, incrementa -
Incremento previo (
++value): primero se incrementa y, a continuación, se usa el nuevo valor.
int a = 5;
Console.WriteLine(a++); // Output: 5 (uses old value, then increments)
Console.WriteLine(a); // Output: 6 (a was incremented)
int b = 5;
Console.WriteLine(++b); // Output: 6 (increments first, then uses new value)
Console.WriteLine(b); // Output: 6
Las mismas reglas se aplican a -- (decremento).
División con enteros frente a decimales
Al dividir dos enteros, C# trunca (quita) la parte decimal:
int result = 7 / 2;
Console.WriteLine(result); // Output: 3 (not 3.5)
Para mantener el decimal, al menos uno de los números debe ser un tipo decimal:
decimal result = 7m / 2m;
Console.WriteLine(result); // Output: 3.5
Este es el motivo por el que elegir el tipo de datos adecuado es importante para los cálculos. En la sección siguiente, aprenderá a convertir entre tipos cuando necesite.