C# - Cikluskezelés

C# nyelv 6. rész

forráskód letöltése
Mellékelt példaprogramban a C# cikluskezelési lehetőségeit próbáljuk ki.
A Form-ra három nyomógombot helyeztünk el. Mindháromnak az a feladata, hogy szintén a Form-on található listBox komponensbe 1-től 10-ig írjon számokat, viszont mind a három esetben másfajta ciklussal oldjuk ezt meg.
Az első gombnál láthatunk példát a for ciklusra. A for esetében három dolgot kell megadnunk. Az első lesz a ciklus változó, melyet itt helyben deklarálunk és adunk kezdő értéket, a másodiknak azt a feltételt kell megadnunk, ameddig a ciklus futhat, végül arról kell rendelkeznünk, hogy a ciklus változó értéke miként növekedjen.
A listBox komponens feltöltéséhez az Items property-ét használjuk és azon belül is az Add függvényt. Itt egy sztringet kell megadnunk, mely új elemként hozzákerül a listBox tartalmához. Mivel a ciklus változónk int típusú, így itt egy egész szám sztring konverzióra lesz szükségünk. Ehhez a System Int32 osztályát hívjuk segítségül. Ezen belül találunk egy ToString nevű függvényt, mely a paramétereként kapott számot sztringként adja vissza.
private void button1_Click(object sender, System.EventArgs e)
{
listBox1.Items.Clear();
for (int i=1; i<10; i++)
{
listBox1.Items.Add(i.ToString());
}
}
A második gombnál a while ciklust vetjük próba alá. Itt a ciklus változót előzőleg kell deklarálnunk és annak kezdő értéket adnunk. A while-nál csak az a feltétel adható meg, amely befolyásolja, hogy a ciklus meddig fusson. A ciklus változó értékének növeléséről a ciklusmagban kell rendelkeznünk.
    private void button2_Click(object sender, System.EventArgs e)
    {
      listBox1.Items.Clear();
      int i=10;
      while (i<20)
      {
        listBox1.Items.Add(i.ToString());
        i++;
      }
    }
Harmadik példánál egy hátultesztelő ciklust készítünk, ahol a ciklusváltozó deklarációja és annak történő értékadása után a do kulcsszóval kezdeményezzük a ciklust. A ciklus változó értékének növeléséről szintén a ciklusmagban kell gondoskodnunk. A ciklus futása akkor ér véget, ha a ciklus végén lévő while kulcsszónál megadott feltétel teljesül. Mivel a feladat az 1-től 10-ig terjedő számok kiírása, így ebben az esetben a kezdőértéket nullára kell választanunk, mivel a ciklus változó növelés előbb történik a kiírásnál. Ezt persze növelhetnénk a kiírás után is. Ekkor viszont a while-nál megadott feltételen kellene változtatni, de az eredmény így is jó lenne.
    private void button3_Click(object sender, System.EventArgs e)
    {
      listBox1.Items.Clear();
      int i=20;
      do
      {
        i++;
        listBox1.Items.Add(i.ToString());          
      } while (i<30); 
   }
A negyedik nyomógombnál a for ciklushoz hasonló ciklust láthatunk. Ennek neve foreach. Abban az esetben, ha például egy tömb, vagy egy kollekció minden elemén végig kell mennünk egy ciklussal, akkor felesleges egy for ciklus készítenünk ehhez. Sokkal egyszerűbben használható a foreach. Mellékelt példában egy tömbön megyünk végig, mely egész számokat tartalmaz. A ciklusnak az a feladata, hogy a tömb elemeinek értékét összegezze, majd megjelenítse az eredményt. A foreach használatához a kulcsszó után zárójelben létrehozunk egy változót i névvel int típussal, majd az in kulcsszó megadása után rendelkezhetünk arról, hogy mely elemen kell végig menni. Ez jelen esetben az array nevű int értékeket tartalmazó tömb lesz. Ebben az esetben az i változó azonban nem a ciklus változó lesz, hanem egy olyan változó, mely az array tömb aktuális elemének értékét tárolja.
    private void button4_Click(object sender, System.EventArgs e)
    {
      listBox1.Items.Clear();
      int[] array = new int [] {100, 200, 300};
      int sum = 0;
      foreach (int i in array) 
      {
        listBox1.Items.Add(i.ToString());          
        sum += i;
      }
      listBox1.Items.Add("---------");          
      listBox1.Items.Add(sum.ToString());
    }

C# nyelv cikksorozat