Ćwiczenie — przyrostowe i dekrementacji wartości
Ostateczne podstawowe działania, które poznasz w tym module, to sposób inkrementacji i dekrementacji wartości przy użyciu specjalnych operatorów będących kombinacjami symboli.
Inkrementacja i dekrementacja
Często trzeba zwiększać i/lub dekrementować wartości, szczególnie podczas pisania logiki pętli lub kodu, który wchodzi w interakcję ze strukturą danych.
Operator +=
dodaje i przypisuje wartość po prawej stronie operatora do wartości po lewej stronie operatora. Dlatego wiersze drugi i trzeci w poniższym fragmencie kodu są takie same:
int value = 0; // value is now 0.
value = value + 5; // value is now 5.
value += 5; // value is now 10.
Operator ++
zwiększa wartość zmiennej o 1. Dlatego wiersze drugi i trzeci w poniższym fragmencie kodu są takie same:
int value = 0; // value is now 0.
value = value + 1; // value is now 1.
value++; // value is now 2.
Te same techniki mogą służyć do odejmowania, mnożenia i nie tylko. W krokach następującego ćwiczenia zaprezentowano kilka z nich.
Uwaga
Operatory takie jak +=
, -=
, *=
, ++
i --
są znane jako złożone operatory przypisania, ponieważ oprócz przypisywania wyniku do zmiennej wykonują pewne działania. W szczególności operator +=
jest określany jako operator przypisania z dodawaniem.
Pisanie kodu w celu przyrostowania i dekrementowania wartości
Zaznacz cały kod w edytorze .NET, a następnie naciśnij klawisz Delete lub Backspace , aby go usunąć.
Wprowadź następujący kod w edytorze .NET:
int value = 1; value = value + 1; Console.WriteLine("First increment: " + value); value += 1; Console.WriteLine("Second increment: " + value); value++; Console.WriteLine("Third increment: " + value); value = value - 1; Console.WriteLine("First decrement: " + value); value -= 1; Console.WriteLine("Second decrement: " + value); value--; Console.WriteLine("Third decrement: " + value);
Uruchom kod. Powinny zostać wyświetlone następujące dane wyjściowe:
First increment: 2 Second increment: 3 Third increment: 4 First decrement: 3 Second decrement: 2 Third decrement: 1
Uwaga
W ciągu "drugiej inkrementacji" użyto elementu value += 1;
. Można jednak użyć dowolnej wartości literału int
(lub zmiennej), aby zwiększać tę kwotę. Tak samo jest w przypadku „drugiej dekrementacji”: value -= 1;
.
Pozycjonowanie operatorów inkrementacji i dekrementacji
Zarówno operatory przyrostu, jak i dekrementacji mają interesującą jakość — w zależności od ich położenia wykonują operację przed pobraniem wartości lub po jej pobraniu. Innymi słowy, jeśli użyjesz operatora przed wartością, jak w zapisie ++value
, to inkrementacja nastąpi przed pobraniem wartości. Zapis value++
natomiast spowoduje inkrementację po pobraniu wartości.
Użyj operatora inkrementacji przed i po wartości
Usuń kod z poprzednich kroków i wprowadź następujący kod w edytorze .NET:
int value = 1; value++; Console.WriteLine("First: " + value); Console.WriteLine($"Second: {value++}"); Console.WriteLine("Third: " + value); Console.WriteLine("Fourth: " + (++value));
Uruchom kod. Powinny zostać wyświetlone następujące dane wyjściowe:
First: 2 Second: 2 Third: 3 Fourth: 4
Zwróć uwagę na ten wiersz kodu:
Console.WriteLine($"Second: {value++}");
Ten wiersz zawiera dwa kroki:
- Pobranie bieżącej wartości zmiennej
value
i użycie jej w operacji interpolacji ciągu. - Inkrementacja wartości.
Następny wiersz kodu potwierdza, że wartość faktycznie została zwiększona.
Console.WriteLine("Third: " + value);
Przyjrzyj się teraz ostatniemu wierszowi kodu:
Console.WriteLine("Fourth: " + (++value));
Tutaj kolejność działań jest zmieniona, ponieważ operator ++
jest umieszczony przed operandem value
.
- Inkrementacja wartości.
- Pobierz nową wartość przyrostową zmiennej
value
i użyj jej w operacji ciągu.
Chociaż nie jest to absolutnie konieczne, dodano nawiasy wokół wyrażenia (++value)
w celu zwiększenia czytelności. Umieszczenie wielu operatorów +
obok siebie może być niezrozumiałe dla innych deweloperów. Takie decyzje to kwestia stylu i są subiektywne. Ponieważ jednak napiszesz kod raz, ale odczytujesz go wiele razy, należy określić priorytet czytelności.
Podsumowanie
Poniżej przedstawiono zdobytą wiedzę na temat operacji matematycznych w języku C#:
- Używaj złożonych operatorów przypisania, takich jak
+=
,-=
,*=
,++
i--
, aby przeprowadzać działania matematyczne, takie jak inkrementacja lub dekrementacja, a następnie przypisywać wynik do pierwotnej zmiennej. - Operatory inkrementacji i dekrementacji działają inaczej w zależności od tego, czy operator jest przed, czy po operandzie.