Změna hodnoty proměnné
Novou hodnotu proměnné často počítáte z té současné. Hráč sebere minci a jeho skóre se zvýší o 10:
int skore = 30;
skore = skore + 10;
std::cout << skore << "\n";Vypíše:
40V matematice by skore = skore + 10 nedávalo smysl. V C++ ale = znamená „ulož“: nejdřív se spočítá pravá strana se současnou hodnotou (30 + 10) a výsledek, 40, se pak uloží do proměnné skore. Původní hodnota se tím přepíše.
Programy to dělají tak často, že na to má C++ zkratky:
skore += 10;znamená totéž coskore = skore + 10;skore -= 10;znamenáskore = skore - 10;skore *= 2;znamenáskore = skore * 2;skore /= 2;znamenáskore = skore / 2;skore++;přičte 1 askore--;odečte 1
int penize = 100;
penize -= 30; // koupili jste knihu
penize += 50; // prodali jste starou hru
penize *= 2; // babička vám úspory zdvojnásobila
std::cout << "Peníze: " << penize << " Kč\n";
int pocetNavstev = 0;
pocetNavstev++;
pocetNavstev++;
std::cout << "Návštěvy: " << pocetNavstev << "\n";Vypíše:
Peníze: 240 Kč
Návštěvy: 2++ uvidíte hlavně v cyklech, kde se jím počítá 1, 2, 3 a tak dál. Najdete ho i v názvu jazyka: C++ je jazyk C vylepšený o jedničku.
Typické chyby:
skore + 10;samo o sobě proměnnou nezmění. Výsledek se spočítá a hned zahodí, protože ho nic neukládá. Program se přesto přeloží, takže neuvidíte chybu, jen špatný výsledek.skore =+ 10;s prohozenými znaky se také přeloží, ale znamenáskore = +10;, tedy uloží do proměnné 10. Správně je+=: plus před rovnítkem a bez mezery mezi nimi.
Jak psát:
"Shift + ů
/Shift + ú
\Alt Gr + q
{Alt Gr + b
}Alt Gr + n
<Alt Gr + ,
>Alt Gr + .
[Alt Gr + f
]Alt Gr + g
#Alt Gr + x
&Alt Gr + c
|Alt Gr + w
*Alt Gr + -
Pokyny
Pod první komentář přičtěte k proměnné skore 10 pomocí +=.
Pod druhý komentář uberte hráči jeden život pomocí --.
Pod třetí komentář zdvojnásobte skóre pomocí *=. Program by pak měl vypsat:
Skóre: 100
Životy: 2Začněte programovat zdarma
7/9