Operatory inkrementacji i dekrementacji w Arduino
W Arduino, oprócz podstawowych operatorów arytmetycznych (+, -, *, /), często stosuje się operatory inkrementacji (++) i dekrementacji (--), które pozwalają szybko zwiększać lub zmniejszać wartość zmiennej o jeden. Ułatwia to sterowanie licznikami, iterację pętli i zarządzanie danymi.
Poniżej znajdziesz opis tych operatorów, różnice między pre- i post-inkrementacją oraz przykłady ich zastosowania.
Operatory inkrementacji i dekrementacji pozwalają na szybkie zwiększanie (++) lub zmniejszanie (--) wartości zmiennej o jeden. W Arduino, podobnie jak w języku C/C++, mogą być stosowane do różnych typów danych, takich jak:
- Całkowite (np. int, long, short, byte)
- Zmiennoprzecinkowe (np. float, double)
- Znaki (np. char, ponieważ są przechowywane jako liczby w kodzie ASCII)
- Wskaźniki (przesuwają wskaźnik na kolejny lub poprzedni element w pamięci)
Wyróżnia się dwa rodzaje tych operatorów:
- Pre-inkrementacja / Pre-dekrementacja: ++x oraz
--x (wartość zmiennej zmienia się przed użyciem w wyrażeniu) - Post-inkrementacja / Post-dekrementacja: x++ oraz x
--(wartość zmiennej zmienia się po jej użyciu w wyrażeniu)
Różnice w ich działaniu są kluczowe w bardziej złożonych operacjach, zwłaszcza w pętlach i wyrażeniach warunkowych.
Przykład 1: Pre-inkrementacja (++x)
W tym przykładzie (Symulacja_1) wartość zmiennej x zostaje zwiększona przed jej użyciem w instrukcji Serial.println(x);, co oznacza, że do funkcji Serial.println() trafia już zwiększona wartość.
Wynik działania programu
Najpierw wartość x wynosi 5, następnie operator ++x zwiększa ją o jeden, więc Serial.println(++x); drukuje już 6. Po operacji zmienna x pozostaje na poziomie 6, co widać w ostatnim wywołaniu Serial.println(x);.
Przykład 2: Post-inkrementacja (x++)
W tym przykładzie (Symulacja_2) wartość zmiennej x zostaje zwiększona dopiero po jej użyciu w instrukcji Serial.println(x);, co oznacza, że do funkcji Serial.println() trafia jeszcze wartość sprzed inkrementacji.
Wynik działania programu
Najpierw wyświetlana jest początkowa wartość x, czyli 5. Następnie Serial.println(x++); drukuje 5, ponieważ operator x++ zwraca bieżącą wartość, a dopiero potem ją zwiększa. W ostatnim wywołaniu Serial.println(x); zmienna x ma już wartość 6.
W powyższych przykładach zarówno pre-inkrementacja (++x), jak i post-inkrementacja (x++) prowadzą do tego samego końcowego wyniku – wartość zmiennej x zostaje zwiększona o jeden. Różnica polega na tym, że w przypadku ++x zmiana następuje przed użyciem wartości w wyrażeniu, natomiast w x++ dopiero po jej użyciu. Jeśli chcemy od razu pracować na zwiększonej wartości, stosujemy ++x, a gdy potrzebujemy najpierw użyć pierwotnej wartości, wybieramy x++. W poniższej tabeli (Tab.1), zaprezentowano zestawienie operatorów inkrementacji w Arduino.
| Operator | Opis |
|---|---|
| ++x | Operator „pre-inkrementacji” – najpierw zwiększa wartość zmiennej o 1, a następnie używa jej w wyrażeniu. W instrukcji Serial.println(++x); zostanie wyświetlona już zwiększona wartość. |
| x++ | Operator „post-inkrementacji” – najpierw używa bieżącej wartości zmiennej w wyrażeniu, a dopiero potem ją zwiększa. W instrukcji Serial.println(x++); wyświetlona zostanie pierwotna wartość, a zmiana nastąpi w kolejnym kroku. |
Przykład 3: Pre-dekrementacja (--x)
W tym przykładzie (Symulacja_3) wartość zmiennej x zostaje zmniejszona przed jej użyciem w instrukcji Serial.println(x);, co oznacza, że do funkcji Serial.println() trafia już zmniejszona wartość.
Wynik działania programu
Najpierw wartość x wynosi 5, następnie operator --x zmniejsza ją o jeden, więc Serial.println(--x); drukuje już 4. Po operacji zmienna x pozostaje na poziomie 4, co widać w ostatnim wywołaniu Serial.println(x);.
Przykład 4: Post-dekrementacja (x--)
W tym przykładzie (Symulacja_4) wartość zmiennej x zostaje zmniejszona dopiero po jej użyciu w instrukcji Serial.println(x);, co oznacza, że do funkcji Serial.println() trafia jeszcze wartość sprzed dekrementacji.
Wynik działania programu
Najpierw wyświetlana jest początkowa wartość x, czyli 5. Następnie Serial.println(x--); drukuje 5, ponieważ operator x-- zwraca bieżącą wartość, a dopiero potem ją zmniejsza. W ostatnim wywołaniu Serial.println(x); zmienna x ma już wartość 4.
W powyższych przykładach zarówno pre-dekrementacja (--x), jak i post-dekrementacja (x--) prowadzą do tego samego końcowego wyniku – wartość zmiennej x zostaje zmniejszona o jeden. Różnica polega na tym, że w przypadku --x zmiana następuje przed użyciem wartości w wyrażeniu, natomiast w x-- dopiero po jej użyciu. Jeśli chcemy od razu pracować na zmniejszonej wartości, stosujemy --x, a gdy potrzebujemy najpierw użyć pierwotnej wartości, wybieramy x--. W poniższej tabeli (Tab.2), zaprezentowano zestawienie operatorów dekrementacji w Arduino.
| Operator | Opis |
|---|---|
--x |
Operator „pre-dekrementacji” – najpierw zmniejsza wartość zmiennej o 1, a następnie używa jej w wyrażeniu.
W instrukcji Serial.println(--x); zostanie wyświetlona już zmniejszona wartość.
|
x-- |
Operator „post-dekrementacji” – najpierw używa bieżącej wartości zmiennej w wyrażeniu, a dopiero potem ją zmniejsza.
W instrukcji Serial.println(x--); wyświetlona zostanie pierwotna wartość, a zmiana nastąpi w kolejnym kroku.
|
Asystent Arduinowo_AI

Asystent Arduinowo_AI zgłębił powyższy zakres wiedzy i z przyjemnością wszystko Ci wyjaśni.
Weź udział w quizie i sprawdź, ile wiedzy z modułu A udało Ci się opanować!
Zdobądź więcej wiedzy!
Przejdź do kolejnych materiałów naszego kursu: IF…ELSE – Instrukcje warunkowe.