Hledejte v chronologicky řazené databázi studijních materiálů (starší / novější příspěvky).

3. Výrazy, operátory, příkazy if, while.

3. Výrazy, operátory, příkazy if, while.

Výrazy:
Pozn.: Podle mě je výraz úplně všechno, kde se používají operátory, ale nenašel jsem žádnou definici, která by to potvrzovala.

Operátory:
aritmetické operátory
+, -, *
/ Celočíselné, nebo reálné, dělení. To, jestli bude provedeno dělení celočíselné, nebo reálné, záleží na typu operandů. Pokud oba operandy budou celočíselného typu, provede se celočíselné dělení. Pokud ovšem alespoň jeden z operandů bude reálného typu, provede se dělení reálné. V případě, že potřebujeme provést reálné dělení na operandech celočíselných typů, musíme jeden z nich přetypovat pomocí operátoru přetypování (viz. dále) na reálný typ.
% Dělení modulo, neboli zbytek po celočíselném dělení.
= Přiřazení.

relační operátory
<, <=, >, >= menší než, menší nebo rovno, atd...
!= Nerovnost
== Rovnost

logické operátory
&& logický součin (AND)
|| logický součet (OR)
^ logický XOR
! Negace

operátory inkrementace a dekrementace
++ Inkrementace. Zvýší hodnotu operandu o 1.
-- Dekrementace. Sníží hodnotu operandu o 1.

Oba operátory se dají použít jak před svým operandem, tak za ním. Význam je ale pokaždé jiný. Pokud operátor uvedeme před operandem, jedná se o tzv. preinkrementaci. To znamená, že hodnota operandu se nejprve zvýší a tato zvýšená hodnota je vrácena jako výsledek operace. Naopak při postinkrementaci je jako hodnota celého výrazu vrácena původní hodnota operandu a pak je teprve operand samotný zvýšen o 1.
int a,b=1;
a = b++;
/*Postinkrementace. Výraz b++ je nejdříve vyhodnocen (a jeho hodnota přiřazena proměnné a) a pak je teprve inkrementována proměnná b. Proměnná a teď tedy má hodnotu 1 a b je rovno 2.*/

a = ++b;
/*Preinkrementace. Nejdříve je inkrementováno b na hodnotu 3. Tato hodnota je i výsledkem vyhodnocení výrazu ++b a tedy je přiřazena proměnné a. Hodnota a je 3.*/

operátor přetypování
I když se při neshodách typů provádí implicitní přetypování, někdy potřebujeme explicitně přetypovat jeden typ na jiný. To provedeme pomocí operátoru přetypování. Zápis vypadá tak, že před samotný výraz, který chceme přetypovat, uvedeme v kulatých závorkách jméno nového typu.
int a=5, b=3;
double c;
c = a / (double)b; /*Pokud bychom nepoužili přetypování, provedlo by se celočíselné dělení. Pro vynucení dělení reálného musíme hodnotu výrazu b přetypovat na double. */

přiřazovací operátory
Tyto operátory jsou vždy tvořeny znakem prováděné operace a znakem '='. Pro výše zmíněné operace to jsou operátory +=, -=, *=, /=, %=.
Příklad:
a += 10; //Je stejné jako a = a + 10;

příkaz if:
if (výraz) příkaz;
if (výraz) {
blok příkazů;
}else{
další blok příkazů;
}
Příkaz if slouží k větvení programu. Nejdřív se vyhodnotí výraz. Pokud je hodnota, vzniklá jeho vyhodnocením, nenulová nebo true, provede se to co následuje za kulatou závorkou. Tzn. Buď jeden příkaz a nebo blok příkazů. V opačném případě, kdy je výraz vyhodnocen jako nula nebo false, se příkaz neprovede. Pokud následuje za příkazem else provede se následující příkaz(blok příkazů).

cyklus while:

Příkaz while realizuje v C++ cykly s podmínkou na začátku.
while (výraz) příkaz;
While funguje tak, že se nejprve vyhodnotí výraz a pak, je-li vyhodnocen jako nenulový(true), provede se příkaz. Po jeho provedení se znovu vyhodnotí výraz a případně se znovu provede příkaz. Cyklus končí v okamžiku, kdy je podmínka vyhodnocena jako 0 (false). Příkaz se pak již neprovede a program pokračuje dalším příkazem po while.
int a=0;
while (a<10) a++; //desetkrát se provede inkrementace a.

cyklus do-while viz otázka 9.

Žádné komentáře:

Okomentovat