Wykonywanie operacji matematycznych
Wskazówka
Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .
W ich rdzeniu komputery są niezwykle szybkimi kalkulatorami. Język C# obsługuje wszystkie standardowe operacje matematyczne, których można oczekiwać, umożliwiając wykonywanie obliczeń i zapisywanie wyników w zmiennych.
Operatory arytmetyczne
Język C# używa standardowych symboli dla podstawowej matematyki:
| Operator | Action | Example | Wynik |
|---|---|---|---|
+ |
Addition | 10 + 3 |
13 |
- |
Subtraction | 10 - 3 |
7 |
* |
Multiplication | 10 * 3 |
30 |
/ |
Division | 10 / 3 |
3 (dzielenie całkowite) |
% |
Modulo (pozostała część) | 10 % 3 |
1 |
Możesz spróbować uruchomić ten kod samodzielnie w edytorze kodu języka C#.
Omówienie modułu (%)
Operator % modulu zwraca wszystko, co pozostało po dzieleniu. Warto sprawdzić, czy liczba dzieli się równomiernie:
Console.WriteLine(10 % 2); // Output: 0 (10 is even)
Console.WriteLine(11 % 2); // Output: 1 (11 is odd)
Kolejność operacji
Język C# jest zgodny ze standardową kolejnością matematyczną operacji (PEMDAS): nawiasy, a następnie mnożenie/dzielenie, a następnie dodawanie/odejmowanie. Użyj nawiasów, aby kontrolować kolejność:
int standard = 2 + 3 * 4; // Multiplication first: 14
int forced = (2 + 3) * 4; // Parentheses first: 20
Operatory przypisania złożone
Typowy wzorzec polega na aktualizowaniu zmiennej przy użyciu własnej wartości — na przykład dodawania do oceny lub odejmowania z salda. C# ma do tego operatory skrócone:
int score = 50;
score = score + 10; // Standard way: score is 60
score += 10; // Shorthand: score is 70
Ta sama skrócona metoda działa w przypadku innych operacji:
| Operator | Meaning | Example | Wynik (począwszy od 10) |
|---|---|---|---|
+= |
Dodawanie i przypisywanie | x += 5 |
15 |
-= |
Odejmij i przypisz | x -= 5 |
5 |
*= |
Mnożenie i przypisywanie | x *= 5 |
50 |
/= |
Dzielenie i przypisywanie | x /= 5 |
2 |
Operatory inkrementacji i dekrementacji
W przypadku dodawania lub odejmowania 1język C# ma jeszcze krótsze operatory —++ i --:
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
Pozycja ma znaczenie: preinkrementacja a postinkrementacja
Operatory ++ i -- zachowują się inaczej w zależności od tego, czy występują przed zmienną, czy po niej:
-
Postinkrementacja (
value++): najpierw używa bieżącej wartości, a następnie ją inkrementuje -
Preinkrementacja (
++value): Najpierw zwiększa wartość, a następnie używa nowej wartości
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
Te same reguły dotyczą -- (dekrementacji).
Dzielenie liczb całkowitych a liczb dziesiętnych
Gdy dzielisz dwie liczby całkowite w języku C#, część ułamkowa jest odrzucana:
int result = 7 / 2;
Console.WriteLine(result); // Output: 3 (not 3.5)
Aby zachować liczbę dziesiętną, co najmniej jedna z liczb musi być typem dziesiętnym:
decimal result = 7m / 2m;
Console.WriteLine(result); // Output: 3.5
Dlatego wybór odpowiedniego typu danych ma znaczenie dla obliczeń. W następnej sekcji dowiesz się, jak konwertować typy, gdy zajdzie taka potrzeba.