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