TOC

This article is currently in the process of being translated into Czech (~62% done).

Control Structures:

Cykly

Další základní technikou při psaní softwaru je cyklus (loop), který má schopnost opakovat blok kódu X krát. V C# se provádí ve 4 různých variantách a my se na ně podíváme.

Cyklus while

Cyklus while je pravděpodobně nejjednodušší, a tak začneme s tím. Cyklus while jednoduše provede blok kódu, pokud je podmínka, kterou dáte, pravdivá. Malý příklad a pak další vysvětlení:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int number = 0;

    while(number < 5)
    {
Console.WriteLine(number);
number = number + 1;
    }

    Console.ReadLine();
}
    }
}

Zkuste spustit kód. Získáte pěkný seznam čísel od 0 do 4. Číslo je nejprve definováno jako 0 a pokaždé, když je kód v cyklu spuštěn, je o 1 hodnotu vyšší. Ale proč se dostává jen na 4, když kód říká 5? Aby podmínka vrátila hodnotu true, musí být číslo menší než 5, což v tomto případě znamená, že kód, který zobrazí číslo není dosažen, jakmile se číslo rovná 5. To je proto, že je vyhodnocena podmínka cyklu while dříve než vstoupí do bloku kódů.

Cyklus do

The opposite is true for the do loop, which works like the while loop in other aspects through. The do loop evaluates the condition after the loop has executed, which makes sure that the code block is always executed at least once.

int number = 0;
do  
{  
    Console.WriteLine(number);  
    number = number + 1;  
} while(number < 5);

The output is the same though - once the number is more than 5, the loop is exited.

Cyklus for

Pro smyčku je trochu jiná. Je výhodné, když víte, kolik iterací chcete, buď proto, že znáte přesné množství iterací, nebo proto, že máte proměnnou obsahující tuto částku. Zde je příklad smyčky for.

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int number = 5;

    for(int i = 0; i < number; i++)
Console.WriteLine(i);

    Console.ReadLine();
}
    }
}

This produces the exact same output, but as you can see, the for loop is a bit more compact. It consists of 3 parts - we initialize a variable for counting, set up a conditional statement to test it, and increment the counter (++ means the same as "variable = variable + 1").

The first part, where we define the i variable and set it to 0, is only executed once, before the loop starts. The last 2 parts are executed for each iteration of the loop. Each time, i is compared to our number variable - if i is smaller than number, the loop runs one more time. After that, i is increased by one.

Try running the program, and afterwards, try changing the number variable to something bigger or smaller than 5. You will see the loop respond to the change.

Cyklus foreatch

Poslední smyčka, na kterou se podíváme, je smyčka foreach. Funguje na kolekcí položek, například polí nebo jiných vestavěných typů seznamů. V našem příkladu použijeme jeden z jednoduchých seznamů nazvaných ArrayList. Funguje to podobně jako pole, ale nebojte se, podíváme se do něj v pozdější kapitole.

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{    
    ArrayList list = new ArrayList();
    list.Add("John Doe");
    list.Add("Jane Doe");
    list.Add("Someone Else");
   
    foreach(string name in list)
Console.WriteLine(name);

    Console.ReadLine();
}
    }
}

Dobře, takže vytvoříme instanci ArrayListu a přidáme do ní nějaké strunné položky. Pro každou položku používáme smyčku foreach a nastavíme proměnnou name na položku, kterou jsme dosáhli pokaždé. Tímto způsobem máme k dispozici pojmenovanou proměnnou. Jak vidíte, deklarujeme proměnnou name, která má být typu string - vždy musíte říci foreach smyčce, kterou datový typ očekáváte, že se z kolekce vytáhne. V případě, že máte seznam různých typů, můžete namísto určité třídy použít třídu objektu, abyste každou položku vytáhli jako objekt.

Při práci s kolekcemi budete s velkou pravděpodobností používat hlavně smyčku foreach, hlavně proto, že je pro tyto operace jednodušší než jakákoli jiná smyčka.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!