HIK Elektronikus Felsőoktatási Tankönyv- és Szakkönyvtár
A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő által közvetített digitális tartalmat a felhasználó a szerzői jogról szóló 1999. évi LXXVI. tv. 33. paragrafus (4) bekezdésében meghatározott oktatási, illetve tudományos kutatási célra használhatja fel. A felhasználó a digitális tartalmat képernyőn megjelenítheti, letöltheti, arról elektronikus adathordozóra vagy papíralapon másolatot készíthet, adatrögzítő rendszerében tárolhatja. A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő weblapján található digitális tartalmak üzletszerû felhasználása tilos, valamint kizárt a digitális tartalom módosítása és átdolgozása, illetve az ilyen módon keletkezett származékos anyag további felhasználása.

9.1.5. A foreach

Van egy speciális ismétlés, a foreach, mely képes a gyűjtemények, vagy a tömbök végigjárására. Ez azt jelenti, hogy nem szükséges ciklusutasítást szerveznünk, és nincs szükség ciklusváltozóra sem, mellyel a tömböt, vagy gyűjteményt indexelnénk. Igaz, hogy ez nem logikai ciklus, és az összetett adat szerkezetekkel még nem foglalkoztunk, de a teljesség kedvéért vizsgáljuk meg ezt a típust is! A foreach általános formája a következő:

foreach (adattípus változó in tömbnév)

{

Utasítások;

}

Az alábbi program részlet bemutatja, hogyan kell használni a foreach utasítást:

Char[] t=new char[] {’f’,’o’,’r’,’e’,’a’,’c’,’h’};

Foreach (char c in t)

{

Console.Write(”{0}”,c);

}

A példában a foreach sorra veszi a t tömb elemeit. Az aktuális tömb elem a c változóból olvasható ki. Az ismétlés az utolsó elem kiírása után áll le, vagyis mikor végigjárta a tömböt.

Természetesen a fenti program részletet for, vagy while ciklussal is megvalósíthattuk volna, de a foreach-t pontosan arra találták ki, hogy ne kelljen figyelni a tömb elemszámát és a tömb elemeit se kelljen a programozónak indexelnie. Ráadásul a foreach használatakor nem fordulhat elő, hogy túl, vagy alul indexeljük a gyűjteményt.

A következő példában a while ciklussal felírt változatot láthatjuk. Ez a program-részlet több utasításból áll, szükség van egy ciklusváltozóra, melynek az értékét növelnünk kell, és a kezdőértékről is gondoskodnunk kell.

char[] t=new char[] {’f’,’o’,’r’,’e’,’a’,’c’,’h’};

i = 0;

while (i< t.length())

{

Console.Write(”{0}”,t[i]);

i += 1;

}

A feltétel vezérelt ciklusokat a programozás számos területén használjuk. Fontosak a szöveges információk kezelésénél, a fájlkezelésnél, s minden olyan probléma megoldásánál, amikor az iterációt for ciklussal nem lehet, vagy nem célszerű megvalósítani.