Cyklus for
Většina cyklů, které počítají, má stejné tři části: proměnnou vytvořenou před cyklem, podmínku a krok na konci bloku:
local den = 1 -- začátek
while den <= 5 do -- podmínka
print("Den " .. den)
den = den + 1 -- krok
endTakové počítání je tak časté, že má Lua cyklus, který všechny tři části zvládne na jednom řádku. Je to cyklus for (pro):
for den = 1, 5 do
print("Den " .. den)
endOba cykly vypíšou totéž:
Den 1
Den 2
Den 3
Den 4
Den 5První řádek čtěte jako „pro den od 1 do 5 dělej“. Cyklus dává proměnné den postupně hodnoty 1, 2, 3, 4 a 5, v každém průchodu jednu. Obě čísla se počítají: cyklus začne prvním a skončí posledním. Proměnnou nemusíte vytvářet před cyklem, nepíšete žádnou podmínku a proměnnou ani sami nezvětšujete: to všechno for udělá za vás. Nemůžete tedy zapomenout na krok a skončit v nekonečném cyklu.
Začátek a konec se oddělují čárkou. for den = 1 to 5 do skončí chybou main.lua:1: ',' expected near 'to'. Mohou to být i proměnné nebo výpočty, například for zahon = 1, pocetZahonu do.
Proměnná cyklu se často jmenuje i, ale může mít jakýkoli název. Cyklus for ji sám udělá lokální, takže před ni local nepište:
for local i = 1, 3 do
print(i)
endmain.lua:1: <name> expected near 'local'Proměnná cyklu existuje jen uvnitř cyklu. Za jeho end je její název zase neznámý, a tak má hodnotu nil:
for i = 1, 3 do
print(i)
end
print(i)1
2
3
nilKdyž hodnotu potřebujete i za cyklem, použijte cyklus while s proměnnou vytvořenou před ním, jako v předchozích cvičeních. Na druhou stranu může mít každý cyklus své vlastní i, protože každé i zmizí, jakmile jeho cyklus skončí.
for, nebo while? for použijte, když víte, kolikrát se cyklus provede: od 1 do 10 nebo jednou pro každý den v týdnu. while použijte, když to předem nevíte. Ema plní koryto pro krávu Bellu vodou ze studny, 8 litrů na jeden kbelík. Kolik kbelíků potřebuje na aspoň 50 litrů?
local voda = 0
local kbeliky = 0
while voda < 50 do
voda = voda + 8
kbeliky = kbeliky + 1
end
print("Kbelíků: " .. kbeliky)
print("Voda: " .. voda .. " litrů")Kbelíků: 7
Voda: 56 litrůJak psát:
Pokyny
Přepište cyklus while z editoru na cyklus for s proměnnou zahon. Cyklus while a řádek, který vytváří proměnnou zahon, smažte. Program bude dál vypisovat Záhon 1 až Záhon 5.
Ema si pronajala další pole. Změňte svůj cyklus tak, aby vypsal záhony od 1 do 8, včetně osmičky:
Záhon 1
Záhon 2
Záhon 3
Záhon 4
Záhon 5
Záhon 6
Záhon 7
Záhon 8Emina slunečnice vyroste každý den o 4 cm. Pod první cyklus napište druhý cyklus for s proměnnou den od 1 do 7, který vypíše, jak je slunečnice po každém dni vysoká. Výšku můžete spočítat přímo v print: den * 4. Druhý cyklus vypíše:
Den 1: 4 cm
Den 2: 8 cm
Den 3: 12 cm
Den 4: 16 cm
Den 5: 20 cm
Den 6: 24 cm
Den 7: 28 cmZačněte programovat zdarma
3/10