Logické operátory: a zároveň
Někdy jedna podmínka nestačí. „Tenisky koupím, pokud stojí méně než 2000 Kč a mají moji velikost“ se skládá ze dvou podmínek spojených slovem „a“. V jazyce C je k tomu operátor && (dva znaky & za sebou). Čtěte ho jako „a zároveň“:
int cena = 1800;
int velikost = 42;
if (cena < 2000 && velikost == 42) {
printf("Koupím si tenisky\n");
}Tento kód vypíše:
Koupím si tenisky&& je logický operátor: spojuje dvě podmínky do jedné. Spojená podmínka je pravdivá, jen když jsou pravdivé obě části. Stačí, aby jedna z nich byla nepravdivá, a celá podmínka je nepravdivá:
true && truejetruetrue && falsejefalsefalse && truejefalsefalse && falsejefalse
Spojit můžete i víc podmínek za sebou: a && b && c je pravda, jen když jsou pravdivé všechny tři.
Každá část musí být celé porovnání. „Věk od 13 do 19“ je vek >= 13 && vek <= 19. Když podmínku zkrátíte tak, jak mluvíme, na vek >= 13 && <= 19, překladač ohlásí chybu error: expected expression, protože neví, co má <= 19 porovnávat. Nefunguje ani zápis z matematiky 13 <= vek <= 19. U něj ohlásí překladač chybu error: chained comparison 'X <= Y <= Z' does not behave the same as a mathematical expression: takové řetězení porovnání v C neznamená totéž co v matematice.
Jak psát:
Pokyny
Ve hře se další úroveň otevře, když máte aspoň 100 bodů a zároveň aspoň 3 hvězdy. Místo komentáře napište příkaz if, který vypíše Další úroveň odemčena, jen když je body aspoň 100 a hvezdy aspoň 3. Obě porovnání spojte pomocí &&.
Přidejte větev else, která vypíše Potřebujete 100 bodů a 3 hvězdy. Pak změňte hvezdy na 2. Stačí jedna nepravdivá část, aby byla nepravdivá celá podmínka, a program proto vypíše Potřebujete 100 bodů a 3 hvězdy.
Začněte programovat zdarma
7/12