C# - Program elágaztatás módszerei

C# nyelv 8. rész

forráskód letöltése
Ebben a fejezetben megismerkedhetünk azzal a két módszerrel, melynek segítségével különféle módon elágaztathatjuk alkalmazásaink futását.
Ehhez a C# nyelv két állítást tartalmaz: az egyik az if, a másik a switch. Kezdjük először az if szerkezet vizsgálatával.
Ha egy adott feltételtől függően szeretnénk elágaztatni programunkat, akkor használhatjuk az if kulcsszót. Az if után zárójelben egy logikai eredményt szolgáltató kifejezést kell megadnunk. Amennyiben a kiértékelés során ez igaz értéket ad vissza úgy az if utáni blokkban (a { } zárójelek között) lévő kód lefut.
      protected void button1_Click (object sender, System.EventArgs e)
      {
        int a = 5;
        int b = 10;
        if (a > b)
        {
          MessageBox.Show("a > b");
        }
      }
Ha a megadott feltétel nem teljesül, akkor ehhez nem kell új vizsgálatot végeznünk. Ennél létezik egy jobb megoldás is, méghozzá az if-hez tartozó else használata. Az else után megadott blokkban lévő kód csak akkor fog futni, ha az if-nél megadott feltétel nem teljesül.
      protected void button2_Click (object sender, System.EventArgs e)
      {
        int a = 5;
        int b = 10;
        if (a > b)
        {
          MessageBox.Show("a > b");
        }
        else
        {
          MessageBox.Show("a <= b");
        }
      }
Természetesen arra is van lehetőségünk, hogy több if-es feltétel vizsgálatot egymásba ágyazzunk.
      protected void button3_Click (object sender, System.EventArgs e)
      {
        int a = 5;
        int b = 10;
        if (checkBox1.Checked)
        {
          if (a > b)
          {
            MessageBox.Show("a > b");
          }
          else
          {
            MessageBox.Show("a <= b");
          }
        }
      }
A másik lehetőségünk, hogy programunk elágazzon, a switch használata. E szó után zárójelben egy olyan kifejezést kell megadnunk, mely kiértékelés után olyan típust ad, melynek elemei egymástól egyedileg megkülönböztethetőek. Ilyen típusok a következők: sbyte, byte, short, ushort, int, uint, long, ulong, char, string, vagy a felsorolt típus. Ezután használhatunk egy vagy több case kulcsszót, mely után megadunk egy konstans értéket. Ha a switch-nél megadott kifejezés értéke egyezik valamely case után megadott értékkel, akkor a program vezérlése az adott case kulcsszó után folytatódik.
Ha több case utasítást használunk, akkor ügyeljünk arra, hogy a program az egyikből a másikba „átfolyik”, ha nem adjuk meg a break kulcsszót. Van amikor ez előny, de nem minden esetben. Alábbi példában mikor a trackBar1 értéke 1 vagy 3, akkor ugyanazt a kódot szeretnénk futtatni. Ilyenkor egymásután írhatunk két case-t break nélkül.
Olyan eset is elképzelhető, amikor nem soroljuk fel az összes lehetséges értéket, mégis kezelnünk kell mindet. Ekkor jön jól a default kulcsszó használata. Ha a case értéke között nem szerepel az aktuálisan keresendő érték és van default kulcsszó, akkor a program futása ez után fog folytatódni.
      protected void trackBar1_Scroll (object sender, System.EventArgs e)
      {
        switch (trackBar1.Value)
        {
          case 0:
            BackColor = Color.Yellow;
            break;
          case 1:
          case 3:
            BackColor = Color.Red;
            break;
          case 2:
            BackColor = Color.Lime;
            break;
          default:
            BackColor = Color.White;
            break;
        }
      }

C# nyelv cikksorozat