Realizar operações matemáticas
Sugestão
Consulte a guia Texto e imagens para obter mais detalhes!
No fundo, os computadores são calculadoras incrivelmente rápidas. O C# suporta todas as operações matemáticas padrão que se esperaria, permitindo-lhe fazer cálculos e guardar os resultados em variáveis.
Operadores aritméticos
C# usa símbolos padrão para matemática básica:
| Operator | Action | Example | Resultado |
|---|---|---|---|
+ |
Addition | 10 + 3 |
13 |
- |
Subtraction | 10 - 3 |
7 |
* |
Multiplication | 10 * 3 |
30 |
/ |
Division | 10 / 3 |
3 (divisão inteira) |
% |
Módulo (resto) | 10 % 3 |
1 |
Podes tentar correr este código tu próprio no Editor de Código C#.
Módulo de compreensão (%)
O operador % de módulo devolve o que resta após a divisão. É útil para verificar se um número se divide igualmente:
Console.WriteLine(10 % 2); // Output: 0 (10 is even)
Console.WriteLine(11 % 2); // Output: 1 (11 is odd)
Ordem de operações
C# segue a ordem matemática padrão de operações (PEMDAS): Parênteses, depois Multiplicação/Divisão, depois Adição/Subtração. Use parênteses para controlar a ordem:
int standard = 2 + 3 * 4; // Multiplication first: 14
int forced = (2 + 3) * 4; // Parentheses first: 20
Operadores de atribuição composta
Um padrão comum é atualizar uma variável usando o seu próprio valor — como somar a uma pontuação ou subtrair de um saldo. C# tem operadores abreviados para isto:
int score = 50;
score = score + 10; // Standard way: score is 60
score += 10; // Shorthand: score is 70
A mesma abreviação funciona para outras operações:
| Operator | Meaning | Example | Resultado (a partir do 10) |
|---|---|---|---|
+= |
Adicionar e atribuir | x += 5 |
15 |
-= |
Subtrair e atribuir | x -= 5 |
5 |
*= |
Multiplicar e atribuir | x *= 5 |
50 |
/= |
Dividir e atribuir | x /= 5 |
2 |
Operadores de incremento e decréscimo
Para somar 1ou subtrair, C# tem operadores ainda mais curtos—++ e --:
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
A posição importa: pré-incremento vs. pós-incremento
Os ++ operadores e -- comportam-se de forma diferente dependendo se aparecem antes ou depois da variável:
-
Pós-incrementação (
value++): Utiliza primeiro o valor atual e, em seguida, incrementa -
Pré-incremento (
++value): Incrementa primeiro, depois usa o novo 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
As mesmas regras aplicam-se a -- (decremento).
Divisão com inteiros vs. decimais
Quando se dividem dois inteiros, C# trunca (elimina) a parte decimal:
int result = 7 / 2;
Console.WriteLine(result); // Output: 3 (not 3.5)
Para manter o decimal, pelo menos um dos números deve ser do tipo decimal:
decimal result = 7m / 2m;
Console.WriteLine(result); // Output: 3.5
É por isso que escolher o tipo de dado certo é importante para os seus cálculos. Na secção seguinte, aprendes a converter entre tipos quando precisares.