Ćwiczenie — przyrostowe i dekrementacji wartości

Ukończone

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

  1. Zaznacz cały kod w edytorze .NET, a następnie naciśnij klawisz Delete lub Backspace , aby go usunąć.

  2. 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);
    
  3. 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

  1. 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));
    
  2. 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:

  1. Pobranie bieżącej wartości zmiennej value i użycie jej w operacji interpolacji ciągu.
  2. 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.

  1. Inkrementacja wartości.
  2. 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.