Lua - wyrażenia warunkowe
Więc już doszliśmy do wyrażeń warunkowych. Na początku trochę teorii, a później przejdziemy do praktyki. Wyrażenie warunkowe jest to wywołanie danego działania na podstawie spełnionych warunków. Tak jak na przykład jeden przykład z życia wzięty - jesteśmy praktycznie mimowolnie przydzielany do danego stanu majątkowego na podstawie naszego zarobku. Wygląda to mniej więcej, jeżeli nasz zarobek jest większy od jednego i mniejszy od drugiego, to kwalifikujemy się do tego stanu majątkowego. Więc wolne tłumaczenie wyrażeń warunkowych może wyglądać tak: jeżeli warunek to prawda to [...]. Oczywiście nasze wyrażenia mogą być znacznie bardziej rozbudowane. Jeżeli warunek to prawda to [...], ale jeżeli warunek to fałsz to [...]. Teraz chyba możemy powoli przejść do praktyki, więc zaczniemy od przykładu, który będziecie mogli sobie przeanalizować:
Kod:
local a, b = 3, 5
if a == 3 then
print(a)
else
print(b)
end
Na ekranie pojawi się wartość zmiennej lokalnej 'a'. Na początku może powiemy sobie co to w ogóle jest if, elseif, else.
Kod:
if a > 5 then - jeżeli 'a' większe od 5 to [...]
elseif a < 5 then - ale jeżeli 'a' mniejsze od 5 to [...]
else - jednak, gdy podane warunki nie zostaną spełnione [...]
Musimy pamiętać o dwóch bardzo ważnych rzeczach:
1. Po zakończeniu wyrażenia warunkowego musimy je zakończyć słowem end.
2. Po samym else nie dodajemy then.
Należy również powiedzieć o rodzajach porównywania:
Kod:
a > 5 - 'a' większe od 5
a < 5 - 'a' mniejsze od 5
a >= 5 - 'a' większe bądź równe 5
a <= 5 - 'a' mniejsze bądź równe 5
a ~= 5 - 'a' różne od 5
a == 5 - 'a' równe 5
Za ciekawostkę można uznać choćby fakt, iż w Lua nie ujrzymy rodzaju wyrażenia warunkowego, który występuje w Perlu, a jest nim unless.
Dla utrwalenia materiału podam jeszcze jeden przykład zastosowania wyrażeń warunkowych:
Kod:
local oceny = {4,5,5,5,2,4,5,5,4}
local zachowanie = 3
local srednia = 0
local bedzie = 0
for i = 1, #oceny do
srednia = srednia + oceny[i]
end
srednia = srednia / #oceny
if srednia >= 4.75 then
print("Bedzie czerwony pasek ;D?")
bedzie = bedzie + 1
else
print("Game Over dude ;/")
end
if zachowanie >= 5 then
print("Farcisz :D")
bedzie = bedzie + 1
else
print("Nupek ;p")
end
if bedzie == 2 then
print("Congraty czerwony pasek :D")
end
Myślę, że przerobiłem cały materiał, który zaplanowałem na tą lekcję. To co teraz poznałeś z całą pewnością nie raz jeszcze przyda ci się w przyszłości i nie tylko w Lua. Czekam na sugestie i pytania
.