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;
printf("%d\n", skore);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;(u typuintjde o celočíselné dělení)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
printf("Peníze: %d Kč\n", penize);
int navstevy = 0;
navstevy++;
navstevy++;
printf("Návštěvy: %d\n", navstevy);Vypíše:
Peníze: 240 Kč
Návštěvy: 2++ uvidíte často v cyklech, kde se jím počítá 1, 2, 3 a tak dál.
Typické chyby, které překladač na tomto webu nezastaví, takže uvidíte jen špatný výsledek:
skore + 10;samo o sobě proměnnou nezmění. Výsledek se spočítá a hned zahodí, protože ho nic neukládá.skore =+ 10;s prohozenými znaky 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 + =
/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
9/11