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 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 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++.
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 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 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.
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--
.
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.
Zdobądź więcej wiedzy!
Przejdź do kolejnych materiałów naszego kursu: Bity i bajty.