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...

DHT11 a DHT22 – meranie teploty a vlhkosti
DHT11 a DHT22 – meranie teploty a vlhkosti

Na meranie teploty a vlhkosti v interiéry som vyskúšal známe senzory DHT11 (modrý) a DHT22 (biely). V článku som spomenul rozdiely, zapojil senzory s Arduinom Nano, vyhľadal vhodnú knižnicu, vyskúšal nejaké tie programy a samozrejme niečo som i nafotil. ...

Čítať viac...

Rezistor
Rezistor

Rezistor (odpor) je pasívny prvok. Používa sa vo všetkých elektrických obvodoch. Základnou vlastnosťou rezistora je jeho odpor. Odpor je fyzikálna vlastnosť, ktorá je daná štruktúrou materiálu a jeho rozmermi. Rezistory používané v elektrotechnike sú...

Čítať viac...

Codino Studio IDE
Codino Studio

Objavila sa i ďalšia alternatíva k Arduino IDE a máme tu Codino. Na domovskej stránke sa chváli slušným editorom, ktorý vie automatické doplňovanie, automatické ukladanie alebo zvýrazňovanie. Taktiež obsahauje sériový terminál a ploter. Codino Studio je úplne bezplatný produkt. Môžete si ho stiahnuť ...

Čítať viac...

Obľúbené produkty...

Keyestudio Mini Tank Robot V2

91.92 EUR

87.32 EUR

TTP229L Touch Key USB Shield

9.41 EUR

9.41 EUR

Keyestudio Mechanical 4WD Robot Arm Car Kit

184.48 EUR

110.69 EUR

Vyhľadať články
Programovanie...
  • Matematické funkcie

    Teraz si ukážeme, aké ďalšie matematické funkcie a operácie podporuje Arduino okrem sčítavania, o...

  • Aritmetické operátory

    Aritmetické operátory vykonávajú matematické operácie dvoch výrazov jednej alebo viacerých typov ...

  • 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...

  • Funkcie času

    Štandardne majú dosky Arduino štyri funkcie času. Jedná sa o funkcie delay (), delayMicroseconds ...

  • Špeciálne operátory

    Spomenieme ešte špeciálne operátory alebo špeciálne znaky, ktoré sa používajú pri programovaní a ...

Podpora webu
Šálka kávy
Na kávu už prispeli
Dátum Meno Suma
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