Rozsahy
Mnoho podmínek se ptá, jestli číslo leží v nějakém rozsahu: je teplota mezi 10 a 25 stupni? Váží dýně od 4 do 8 kg? V matematice byste napsali 10 ≤ t ≤ 25. V Lua potřebujete dvě porovnání spojená pomocí and:
local teplota = 18
if teplota >= 10 and teplota <= 25 then
print("Slepicím je příjemně")
endVypíše:
Slepicím je příjemněKaždá část je celé porovnání, ve kterém je teplota. Zápis z matematiky nefunguje a jeho chyba vás může zmást:
local teplota = 18
if 10 <= teplota <= 25 then
print("Slepicím je příjemně")
endmain.lua:2: attempt to compare boolean with numberLua porovnává zleva doprava: 10 <= teplota dá true a pak se snaží o true <= 25, tedy porovnat pravdivostní hodnotu s číslem. Opak, „mimo rozsah“, potřebuje or: teplota < 10 or teplota > 25. S and by podmínka nebyla pravdivá nikdy, protože žádné číslo není zároveň menší než 10 a větší než 25.
Když čísla dělíte do několika rozsahů, použijte elseif. Každé elseif se provede, jen když všechny podmínky nad ním byly nepravdivé, takže je nemusí opakovat:
local hmotnost = 6
if hmotnost < 4 then
print("Malá dýně: 10 mincí")
elseif hmotnost <= 8 then
print("Střední dýně: 20 mincí")
else
print("Velká dýně: 35 mincí")
endVypíše:
Střední dýně: 20 mincíK hmotnost <= 8 se program dostane, jen když je hmotnost < 4 nepravda, takže hmotnost >= 4 and hmotnost <= 8 není potřeba. Hlídejte hranice: dýně o 4 kg je střední, dýně o 8 kg je pořád střední a else vezme všechno nad 8. Každé číslo by mělo patřit právě do jednoho rozsahu: s podmínkami hmotnost < 4 a hmotnost > 4 by dýně o přesně 4 kg propadla mezerou mezi nimi.
Rozsahy se dají kombinovat s dalšími podmínkami. Jak Ema zalévá pole, záleží na počasí i na teplotě:
local pocasi = "slunečno"
local teplota = 31
if pocasi == "déšť" then
print("Dnes se nezalévá")
elseif teplota >= 30 then
print("Zalévat ráno i večer")
elseif teplota >= 15 then
print("Zalévat večer")
else
print("Zalévat obden")
endVypíše:
Zalévat ráno i večerJak psát:
Pokyny
Spusťte program: skončí chybou. Opravte podmínku pomocí and. Program pak vypíše:
Kurník: 18 °C
Slepicím je příjemněPřidejte další dvě větve pomocí elseif a else: pod 10 °C vypište Rozsviťte v kurníku lampu a nad 25 °C vypište Otevřete v kurníku okna. Pak změňte teplota na 31. Program vypíše:
Kurník: 31 °C
Otevřete v kurníku oknaVyzkoušejte hranici: změňte teplota na 10. Při 10 °C je slepicím ještě příjemně, takže program vypíše:
Kurník: 10 °C
Slepicím je příjemněPokud vypíše Rozsviťte v kurníku lampu, podívejte se na < a <= ve svých podmínkách.
Začněte programovat zdarma
9/10