Zložené operátory

Použitie zložených priraďovacích operátorov zjednodušuje a sprehľadňuje zdrojový kód, no použitie nie je bezpodmienečne nutné. Zložené operátory majú bez výnimky tvar op=, kde op je vždy niektorý z binárnych operátorov. Sémantika zložených operátorov priradenia je nasledujúca: výraz E1 op= E2 je ekvivalentný výrazu E1 = E1 op E2. Výsledok E1 op E2 sa pred priradením späť do E1 konvertuje na typ E1. Zložené operátory sú takisto binárne a asociujú sa rovnako ako jednoduchý operátor =, ich operandy však musia byť primitívnych typov. Jedinou výnimkou je operátor +=, ktorého ľavý operand môže byť typu String, pravý operand v takom prípade môže mať ľubovoľný typ.


++ (inkrementácia)  -- (dekrementácia)

Tieto dva operátory slúžia na inkrementáciu (++) a dekrementáciu (––) premenných. Inkrementovať premennú znamená zvýšiť jej hodnotu o 1, dekrementácia predstavuje, zníženie hodnoty o 1. Oba operátory sú unárne a existujú v dvoch variantoch: prefixovom (operátor je pred operandom) a postfixovom (operátor je za operandom). Ich jediným operandom musí povinne byť premenná číselného typu.

x++   // inkrementácia x o 1 a vráti pôvodnú hodnotu x (prefix)
++x   // inkrementácia x o 1 a vráti novú hodnotu x (postfix)

x--   // dekrementácia x o 1 a vráti pôvodnú hodnotu x (prefix)
--x   // dekrementácia x o 1 a vráti novú hodnotu x  (postfix)

Výsledný efekt aplikácie prefixového a postfixového variantu operátora ++, resp. –– je rovnaký: inkrementácia, resp. dekrementácia. Oba varianty však sa líšia výslednou hodnotou výrazu obsahujúceho príslušný operátor. Pri použití postfixového variantu je výsledkom výrazu hodnota premennej pred inkrementáciou/dekrementáciou, pri použití prefixového variantu je výsledkom výrazu hodnota premennej po inkrementácii/dekrementácii. Ukážme si to na príklade:

x = 2;
y = ++x;   // x teraz obsahuje 3, y obsahuje 3 (novú hodnotu x)
z = x++;   // x teraz obsahuje 3, z obsahuje 2 (pôvodnú hodnotu x pred inkrementáciou)

+=  -=  *=  /=  %=  &=  |=

S väčšinou operátorov sa dá použiť aj ich skrátená forma. Napríklad nemusíme písať výraz A = A+3, ale napíšeme len A +=3. Táto možnosť je mohutne využívaná, i keď nemá prakticky žiadny význam (až na skrátenie kódu a jedno miesto na jednu takúto operáciu :-).

x += y;   // výraz: x = x + y;
x -= y;   // výraz: x = x - y; 
x *= y;   // výraz: x = x * y; 
x /= y;   // výraz: x = x / y; 
x %= y;   // výraz: x = x % y;
x &= y;   // výraz: x = x & y;
x |= y;   // výraz: x = x | y; 

Skrátená forma operátorov sa dá použiť s aritmetickými a bitovými operátormi (s vínimkou negácie), čiže len s binárnymi operátormi.

Operátor &= je často používaný s premennou alebo s konštantou na nastavenie jednotlivých bitov v premennej na nízky stav (logická 0). Tomu sa často hovorí v programovacích sprievodcov ako “resetovanie” bitov.

x  x  x  x  x  x  x  x     1  0  1  0  1  0  1  0    hodnota
1  1  1  1  1  1  0  0     1  1  1  1  1  1  0  0    maska: 1 ponechá hodnotu; 0 nastaví na nulu
----------------------     ----------------------
x  x  x  x  x  x  0  0     1  0  1  0  1  0  0  0    výsledná hodnota

Operátor |= je často používaný s premennou alebo s konštantou na nastavenie jednotlivých bitov v premennej na vysoký stav (logická 1).

x  x  x  x  x  x  x  x     1  0  1  0  1  0  1  0    hodnota
0  0  0  0  0  0  1  1     0  0  0  0  0  0  1  1    maska: 0 ponechá hodnotu; 1 nastaví na jedna
----------------------     ----------------------
x  x  x  x  x  x  1  1     1  0  1  0  1  0  1  1    výsledná hodnota

Tento text je preložený a upravený zo stránok arduino.cc pod licenciou Creative Commons Attribution-ShareAlike 3.0.

Výber na čítanie...

Eclipse Neon návod na inštaláciu
Eclipse Neon – návod na inštaláciu

Eclipse je ďalšie z mnoha IDE, v ktorom píšeme zdrojový kód a ladíme programy. Tento nástroj, ktorý okrem iného ponúka príjemné pracovné prostredie, debuger a nemalé množstvo rozširujúcich pluginov, je možné používať bezplatne. V tomto článku popisujem, ako sa ...

Čítať viac...

Arduino Leonardo
Arduino Leonardo

Arduino Leonardo dizajnovo nadväzuje na Arduino Uno. Líši sa však použitým čipom a tým je ATmega32u4. Mikrokontrolér ATmega32u4 má vstavané USB rozhranie, takže pre komunikáciu s počítačom už nie je potrebné používať ďalšie špeciálne obvody. Leonardo sa k pripojenému počítaču môže javiť...

Čítať viac...

Farebné značenie rezistorov
Farebné značenie rezistorov

Farebné značenie rezistorov bolo vyvinuté na začiatku 20. rokov 20. storočia Asociáciou výrobcov rádií (RMA, teraz súčasťou EIA) a bolo publikované ako EIA-RS-279. RMA zaviedla spočiatku niekoľko spôsobov značenia. Neskôr sa začal používať iba jeden spôsob...

Čítať viac...

Obľúbené produkty...

Keyestudio CAN-BUS Shield MCP2515

10.85 EUR

10.05 EUR

TTP229L Touch Key USB Shield

6.89 EUR

6.62 EUR

Keyestudio USB Host v1.5 shield

12.52 EUR

11.27 EUR

Vyhľadať články
Programovanie...
  • Konverzie

    Možno ste sa už pri programovaní dostali do situácie, kedy si program robil s číslami a dátovými ...

  • Adresové operátory

    Adresové operátory označované aj ako ukazovatele (anglicky pointer, česky ukazovateľ, slovensky s...

  • Ostatné IO funkcie

    U Arduina je možné generovať i zvuk, ale iba v najjednoduchšej podobe. Neumožňuje totiž generovať...

  • Bitové operátory

    Bitové operátory umožňujú vykonať operácie nad jednotlivými bitmi. Túto možnosť zďaleka nemajú vš...

  • Digitálne IO funkcie

    Keďže je Arduino určené k ďalšiemu rozširovaniu, obsahuje vstupy a výstupy (nazývané piny), ku kt...

Podpora webu
Na kávu už prispeli
Dátum Meno Suma
22.03.2025 Radoslav Kopera 5€
30.12.2024 Jozef Greš 5€
20.10.2024 Radovan Nosáľ 20€
02.10.2024 Milan Durkoš 10€
08.01.2024 Veres Dusan 10€
15.05.2023 Ivan Danis 10€
28.09.2022 Ivan Vrab 7€
14.05.2022 Nemcic Marian 10€
04.02.2022 Robert Bilko 5€
29.01.2022 Peter Buffa 5€
19.11.2021 Rastislav Rehak 5€
16.09.2021 Anton Strela 5€
13.09.2021 Juraj Jedlak 5€
02.09.2021 Michal Marek 7€
08.08.2021 František Uhrík 5€
21.07.2021 Juraj Hrdina 5€
25.03.2021 Jan Nemec 10€
16.03.2021 Igor Pavlov 5€
25.02.2021 Lukas Lacuch 5€
06.11.2020 Pavol Balint 5€
05.11.2020 Marek Horečný 5€
05.10.2020 Jan Kusnir 5€
27.04.2020 Jan Zuskin 15€
26.04.2020 Dušan Sojka 5€
24.02.2020 Juraj Lackanič 5€
22.01.2020 František Žilinec 10€
20.05.2018 Tomáš F. 2€
17.12.2018 Pavol P. 5€
QR Donate 10Eur