V dnešní díle našeho seriálu o programování ve Swiftu se koukneme na cykly. Ty se řadí mezi nejzákladnější pilíře programování a dokáží neskutečným způsobem usnadnit psaní kódu. Nebudeme to tedy protahovat a pustíme se rovnou na ně.
Kdy použít cyklus
Jak již je ze samotného názvu jasné, k použití cyklu dochází v případě opakované činnosti. Pokud budeme chtít například vypsat několik hodnot, nemusíme vše psát zvlášť, ale napíšeme kód jen jednou, a to do příslušného cyklu. Představme si například situaci, kdy potřebujeme vypsat čísla od jedničky do desítky. V současné situaci máme znalosti k tomu, abychom do kódu napsali desetkrát print a měli bychom hotovo. Díky cyklu nám však bude stačit napsat print pouze jednou a použít v něm řídící proměnnou, která se s každým projitím cyklu for, takzvanou iterací, zvýší o jedničku (ale nemusí).
Cyklus for
Cyklus for má pevně stanovený počet opakování a dovoluje nám projít nějakou skupinu či kolekci. Pokud v cyklu for nepotřebujeme pracovat s řídící proměnnou, můžeme místo ní napsat podtržítko, čímž vývojovému prostředí Xcode dáme najevo, že pro nás tato proměnná zkrátka není podstatná – taktéž se zbavíme varování ze strany prostředí. Pojďme se tedy společně podívat na možné využití cyklů v galerii níže.
Na posledním snímku si můžete všimnout oddělovače terminator. Ten nám zajistí, abychom neměli čísla pod sebou, ale seřazeny krásně vedle sebe a odděleny mezerou, jak je ze samotného screenshotu patrné. S cykly si jde častokrát velmi hodně pohrát a přenést do nic patřičně složitou logiku, která vám značně usnadní běh celé vaší aplikace.
Pokud máte dosavadní zkušenosti s programováním z jiného jazyku, cyklus for vám ve Swiftu může značně připomínat klasický foreach.
Cyklus while
Cyklus while je naprosto jednoduchý a není na něm nic složitého. Celý cyklus zkrátka probíhá do té doby, dokud platí předem nastavená podmínka.
Na výše přiloženém snímku jsem prvně definoval podmínku typu Bool, které jsem přednastavil hodnotu true. Následně jsem použil cyklus while, kde na místo, kde je zapsána podmínka, se nemusí nacházet boolean, ale jakákoliv jiná hodnota (například logický výraz – a>10). Jelikož daná podmínka platí po celou dobu a nebude nikdy změněna, program se zacyklí a nikdy neskončí. Bohužel, tohle není nejlepší způsob, jak vysvětlit cyklus while, tak si jej tedy implementujeme na naši starou známou kalkulačku. Z níže přiloženého kódu byste měli pochopit veškeré nejasnosti.
V kódu si taktéž můžete povšimnout funkce .lowercased(), díky které se uživatelský vstup převede na malé písmeno a my jeho volbu můžeme lépe ověřit. Pokud bychom tuto část kódu vynechali a uživatel by zadal velké písmeno A, program by se ukončil s chybnou volbou. Přidáním cyklů jsme přenesli naši kalkulačku na opět novou úroveň. Nyní má uživatel schopnost ji používat stále a stále dokola, přičemž je taktéž ověřena spousta uživatelských vstupů (kromě zadávání hodnot). Pokud nechcete kód opisovat z obrázku, můžete si jej zkopírovat z tohoto odkazu. Lepší však je si kód sám přepsat, čímž se vám částečně zaryje do paměti.