Wykonywanie operacji matematycznych

Ukończone

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.