Příkaz if

Zatím vaše programy prováděly všechny příkazy jeden po druhém, shora dolů. Program se ale často musí rozhodnout, co udělá: zobrazit varování, jen když je heslo příliš krátké, nebo dát slevu, jen když je zákazník student. Takhle se rozhodujeme pořád: pokud bude pršet, vezmu si deštník.

V jazyce C se rozhodnutí zapisuje příkazem if (anglicky „pokud“):

int teplota = 30;

if (teplota > 25) {
    printf("Je horko, vezměte si kšiltovku\n");
}
printf("Hezký den\n");

Tento kód vypíše:

Je horko, vezměte si kšiltovku
Hezký den

Příkaz if má tři části:

  • klíčové slovo if. Klíčové slovo je slovo, které má v C zvláštní význam, a proto se nedá použít jako název proměnné;
  • podmínku v kulatých závorkách: (teplota > 25). Podmínka je otázka, na kterou se dá odpovědět jen ano (pravda), nebo ne (nepravda): je teplota větší než 25? Závorky kolem podmínky jsou povinné;
  • blok kódu ve složených závorkách { }. Blok se provede, jen když je podmínka pravdivá.

Za blokem program pokračuje jako obvykle, takže Hezký den se vypíše v každém případě. Kdyby teplota byla 10, podmínka by byla nepravdivá: program by blok přeskočil a vypsal jen Hezký den.

V podmínce můžete porovnávat pomocí > (větší než) a < (menší než) stejně jako v matematice. Další porovnávací operátory poznáte za chvíli.

Složené závorky jsou nutné, kdykoli má blok víc než jeden příkaz. V tomto kurzu je píšeme vždy, i kolem jediného příkazu. Proč, uvidíte v dalším cvičení.

Za ) ani za } se nepíše středník. Když zapomenete kulaté závorky kolem podmínky, překladač ohlásí chybu error: expected '(' after 'if'. Zrádnější je středník za podmínkou:

int teplota = 10;

if (teplota > 25); {
    printf("Je horko, vezměte si kšiltovku\n");
}

Tento kód vypíše:

Je horko, vezměte si kšiltovku

Je přitom jen 10 stupňů. Středník za závorkou ukončí celý příkaz if, takže k podmínce patří jen prázdný příkaz. Blok ve složených závorkách s podmínkou nijak nesouvisí a provede se vždy. Překladač na to upozorní jen varováním a varování se na tomto webu nezobrazují. Když se tedy blok provede, i když by neměl, podívejte se nejdřív, jestli za podmínkou není středník.

Pokyny

Místo komentáře napište příkaz if s podmínkou cena_monitoru < 4000. V jeho bloku vypište Koupím monitor.

Pod blok napište druhý příkaz if s podmínkou cena_monitoru > 4000, který vypíše Je moc drahý. Spusťte program: pořád vypíše jen Monitor stojí 3000 Kč a Koupím monitor, protože 3000 není větší než 4000, a druhý blok se proto přeskočí.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

1/12