TOC

This article has been localized into Hungarian by the community.

Vezérlési szerkezetek:

Ciklusok

A ciklusok (loopok) szintén fontos részei a szoftverfejlesztésnek - velük lehetséges, hogy egy kódblokkot több alkalommal is megismételjünk. C#-ban négy különböző ciklus létezik, ezeket vesszük alább szemügyre.

A while ciklus

A while ciklus talán a legegyszerűbb az összes közül, kezdjünk is hát azzal. Egy while ciklus folyamatosan végrehajt egy kódblokkot, amíg a megadott feltétel igazra értékelhető. Íme egy apró példa:

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();
}
    }
}

Próbáld meg futtatni a kódot: egy számlistát fogsz kapni, nullától négyig. A number változót ugyanis nullára definiáljuk, majd minden alkalommal, amikor a ciklusban lévő kód végrehajtódik, a változót kiíratjuk, majd eggyel megnöveljük. De akkor miért megy a lista négyig, ha a kódban ötöt írtunk? Azért, mert a feltétel akkor értékelődik igazra, ha a number változó kevesebb mint öt. Amint a változó értéke öt lesz, a feltétel hamisra értékelődik, így a ciklus nem kerül újbóli végrehajtásra. Ez azért van, mert while ciklusnál a feltétel mindig a kódblokk végrehajtása előtt van ellenőrizve.

A do ciklus

Ennek ellenkezője a do ciklus, ami egyéb tekintetben úgy működik, mint egy while ciklus. A do ciklus esetén tehát a feltétel kiértékelése minden végrehajtás után történik. Ez azt jelenti, hogy a ciklus legalább egyszer mindenképpen végre lesz hajtva.

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

Az eredmény minden esetre itt is ugyanaz - amint a szám több vagy egyenlő öttel, a ciklus véget ér.

A for ciklus

A for ciklus már különbözik az eddigiektől. Akkor érdemes használni, amikor tudni, hogy a ciklus mennyi iterációjára, végrehajtására van szükség. Ilyen eset például ha tudod pontosan, hogy hányszor szeretnéd végrehajtani a ciklust, vagy ha van egy változó, ami tartalmazza a szükséges iterációk számát. Itt egy példa for loopra:

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();
}
    }
}

Ez ugyanazt az eredményt produkálja, mint ez eddigi ciklusok, de ahogy azt látni, a for loop kissé rövidebben írható. Három részből áll: deklarálunk egy változót, amivel számolunk; felállítunk egy feltételt, ami minden iterációnál kiértékelődik; végül egy utasítás ami növeli a számoló változó értékét (a ++ ugyanazt jelenti, mint "változó = változó + 1").

Az első rész, ahol az i változót definiáljuk és nullára állítjuk, csak egyszer van végrehajtva, mielőtt a ciklus elkezdődik. A másik két rész minden iterációnál végrehajtódik. Minden alkalommal, i összehasonlításra kerül a number változóval - ha i kisebb mint number, akkor a ciklus fut még egy iterációt. Ezután i értéke eggyel növekszik a harmadik rész alapján.

Próbáld meg futtatni a programot, utána próbáld meg megváltoztatni a number változó értékét és újra futtatni. A ciklus reagálni fog a változásra.

A foreach ciklus

Az utolsó ciklus, amiről szót ejtünk, a foreach ciklus. Gyűjteményekkel dolgozik, mint tömbökkel vagy más beépített gyűjteménytípusokkal. A mi példánkban az egyik egyszerű listatípust használjuk, ami az ArrayList. Hasonlóan működik, mint egy tömb (array), de egyelőre ne foglalkozz a részleteivel, egy későbbi fejezetben majd alaposabban szemügyre vesszük.

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();
}
    }
}

Először csinálunk egy ArrayList példányt, majd pár string elemet adunk hozzá. A foreach loopot használva minden iterációval veszünk egy elemet, majd a name változóhoz rendeljük. Ezáltal van egy változónk, amit a kimenetnél használunk is. Ahogy azt láthatod, a name változót stringként deklaráljuk. A foreach ciklusnak ugyanis tudnia kell, milyen adattípust fog kezelni egy adatgyűjteményben. Ha egy különböző típusokból álló gyűjteményről van szó, az object típus is használható egy konkrét típus helyett. Ez esetben a gyűjtemény elemei objectként lesznek kezelve a ciklus alatt.

A gyűjteményekkel való munkánál alighanem gyakran foreach ciklust fogsz majd használni, mivel az a többi ciklusnál sokkal egyszerűbben használható ilyen feladatokra.


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!