Shrnutí

V této lekci jste se naučili, že:

  • if podmínka then … end provede svůj blok, jen když je podmínka pravdivá. O tom, co patří do bloku, rozhodují then a end; odsazení o 4 mezery to ukazuje lidem.
  • else přidává větev pro případ, že podmínka pravdivá není, a elseif (jedno slovo) přidává další větve s vlastními podmínkami. Provede se jen první pravdivá větev, takže záleží na pořadí. Celý příkaz uzavírá jedno end; else if by potřebovalo další.
  • Porovnávací operátory porovnávají dvě hodnoty: ==, ~= (ne !=), <, >, <= a >=. = přiřazuje, kdežto == porovnává. Texty se rovnají, jen když se shodují přesně. Číslo se nikdy nerovná textu a porovnat je pomocí < nebo > je chyba.
  • Proměnná vytvořená pomocí local uvnitř bloku existuje jen do konce bloku. Vytvořte ji před příkazem if a ve větvích ji měňte.
  • and, or a not spojují podmínky. Každá část musí být celé porovnání a not platí jen pro hodnotu hned za ním. Závorky podmínky seskupují.
  • Jako nepravda platí jen false a nil. 0 a "" platí jako pravda. if x then se ptá, jestli má x hodnotu (není nil).
  • x or výchozí dá výchozí hodnotu místo nil. podmínka and a or b vybere jednu ze dvou hodnot, pokud a není false ani nil.
  • Příkaz if může být vnořený v jiném if; každé end uzavře nejbližší otevřený if.
  • Rozsah potřebuje dvě porovnání: t >= 10 and t <= 25. 10 <= t <= 25 je chyba. V řetězu elseif se každá větev může spolehnout, že podmínky nad ní byly nepravdivé.

V příští lekci, o cyklech, se naučíte, jak program přimět, aby kód opakoval: třeba aby prošel všechny dny sezóny.

Pokyny

Procvičení: obchodník Hugo platí za dýni lehčí než 4 kg 10 mincí, za dýni od 4 do 8 kg 20 mincí a za těžší 35 mincí. Místo komentáře napište příkaz if s elseif a else, který nastaví cena. Pro 9 kg program vypíše:

Dýně: 9 kg
Cena: 35 mincí

Nezralá dýně má jen poloviční cenu. Pod svůj příkaz if přidejte další, který cenu vydělí dvěma pomocí cena // 2, když dýně není zralá (použijte not). Pak k ceně přičtěte Hugův bonus. bonus může být nil, takže pomocí or zařiďte, aby chybějící bonus byl 0, a tuto část dejte do závorek: (bonus or 0). Program pořád vypíše Cena: 35 mincí.

Vyzkoušejte jinou dýni: změňte hmotnost na 8, jeZrala na false a bonus na 3. Program vypíše:

Dýně: 8 kg
Cena: 13 mincí

Pokud vypíše jinou cenu, zkontrolujte hranice: dýně o 8 kg je pořád střední.

Začněte programovat zdarma

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

Nebo se registrujte pomocí:

10/10