Základ C# 6 – Cykly a slučky [Cycles and Loops]

Po podmienkach, ktoré dovoľujú nasmerovať kód prichádzajú na radu slučky, vďaka ktorým môžme časti kódu opakovať viac krát za sebou.

Slučky alebo Cykly sú spôsob ako donútiť kód zopakovať sa niekoľko krát. Opäť máme niekoľko možností, ktoré môžme použiť.

For

Slučka for je najčastejšie používaný typ slučiek. Jeho hlavnou výhodou je jednoduchosť.

for (int i = 0; i < 10; i++)
{
   Console.WriteLine(i);
}

Vytvoríte ho zadaním kľúčového slova for a následne do zátvoriek uzavriete inicializáciu premennej, podmienku a akciu. Toto je základný prototyp skučku for, ktorý vytvorí premennú i s hodnotou 0 (int i = 0) a bude sa opakovať, kým je jej hodnota menšia ako 10 (i < 10). Po skončení každého cyklu, sa hodnota i zväčší o 1 (i++). Je dôležité oddeliť každú časť parametrov slučky for bodkočiarkou. For sa dá doslova vysvetliť nasledovne : „Pre i platí, že dokým je menšie ako 10, bude sa na konci každého kroku zväčšovať o 1 a vykoná nasledujúci kód„.

Nasleduje už len samotný kód, ktorý sa bude vykonávať. Opäť, ako pri prípade podmienok if sa vykoná len prvý príkaz alebo blok kódu.

Táto konkrétna slučka napíše na obrazovku čísla 0-9 (cyklus sa vykoná, kým je i menšie ako 10).

While

Slučka While je podobná slučke for, veľkým rozdielom je však zadávanie len podmienky a nie aj akcie a inicializácie. Jej doslovné vysvetlenie by bolo : „Dokým platí podmienka, vykoná sa nasledujúci kód“.

int i = 0;
while (i < 1)
{
   Console.WriteLine(i);
   i++;
}

Tento kód má rovnakú funkčnosť ako slučka for. V tomto prípade však definíciu a inkrementáciu premennej robíme ručne. Často je slučka while využívaná aj ako nekonečna slučka

while (true)
{
    Console.WriteLine("Toto budem písať navždy");
}

Táto slučka nemá koniec, lebo je tam jasne definovaná podmienka :“Dokým je pravda, že pravda je pravda„,  ktorá pochopiteľne bude bežať navždy.

Do-While

Do-While je špeciálny typ slučky while, ktorý podmienku overuje až po vykonaní kódu. Dá sa využiť, keď čakáte dokým nejaká premenná nebude mať istú hodnotu, ale túto hodnotu nadobudne až po prejdení cyklu.

string prikaz;
do
{
   Console.Write("Napíšte exit pre ukončenie. ");
   prikaz = Console.ReadLine();
} while (prikaz != "exit");

Nasledujúci kód prejde slučkou po prvý krát, aj keď premenná prikaz nemá priradenú žiadnu hodnotu, čo by za normálnych okolností zlyhalo. Do-while slučku vytvoríte použitím slova do, zadaním kódu slučky a následným príkazom while s podmienkou a ukončíte bodkočiarkou.

Foreach

Foreach je špeciálny typ cyklu určený pre polia. Je pomocou neho možné získať postupne každú premennú ktorú pole obsahuje.

string[] obrazky = new string[3]{"Obrazok 1", "Obrazok 2", "Obrazok 3"};
foreach (string obrazok in obrazky)
{
   Console.WriteLine(obrazok);
}

Táto slučka prejde každú premennú v poli obrazky a v každom cykle ju priradí do premennej string, Tá je následne vypísaná na obrazovku. Slučku vytvoríte použitím slova foreach a v parametroch deklarujete premennú do ktorej sa budú data ukladať, zadáte slovíčko in a vyberiete pole, z ktorého sa budú premenný vyberať. Doslova by táto funkcia znela : „Pre každú hodnotu v poli obrazky sprav nasledujúce : Priraď túto hodnotu do premennej obrazok a napíš ju na obrazovku.“

Foreach cyklus funguje aj na premennú typu string a je teda možné spraviť nasledujúce :

string napis = "Hello, World!";
foreach (char znak in napis)
{
   Console.WriteLine(znak);
}

Tento kód by postupne napísal vždy do nového riadku jeden znak z textu „Hello, World!“.

Opustenie slučky a cyklu

Cyklus alebo slučku je možné opustiť predčasne pomocou dvoch slov. Zo slovom break ste sa už stretli pri switch-case podmienke. Toto kľúčové slovo nám dovolí kompletne ukončiť slučku a pokračovať v kóde za nim.

for (int i = 0; i < 10; i++)
{
   if (i==5) break;
   Console.WriteLine(i);
}
Console.WriteLine("Koniec");

Podľa tohto kódu bude slučka prebiehať, pre i , ktoré začne na hodnote 0, dokým bude jeho hodnota menšia ako 10. Ale mi túto slučku predčasne ukončiť a pokračovať. Táto by teda vypísala čísla od 0 do 4, a následne napísala „Koniec“.

Druhé slovo je continue, ktoré ukončí len aktuálny cyklus.

for (int i = 0; i < 10; i++)
{
   if (i==5) continue;
   Console.WriteLine(i);
}
Console.WriteLine("Koniec");

Tento kód prejde všetky čísla od 0 do 9, ale pri čísle 5 nedokončí cyklus. Napíše na obrazovku teda čísla 0,1,2,3,4,6,7,8,9 a nakoniec „Koniec“.

Dnes sme si povedali o slučkách a nabudúce si povieme niečo o metódach, ktoré nám opäť trochu sprehľadnia a uľahčia prácu.

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená.

Scroll to Top