Utasítások

A program végrehajtása során az operációs rendszer a Main függvénynek adja át vezérlést, a Main-ben leírt utasítások "működnek" egymás után, ezután visszakapja a vezérlést az operációs rendszer.

Utasításfajták:

Összetett utasítás

Az összetett utasítás { } zárójelek közé írt utasításokból áll, szokták blokknak is nevezni. Blokkon belül változók is deklarálhatók, ezek a blokkon belül "élnek". Blokkokat tetszőlegesen egymásba lehet ágyazni.

Egyszerű utasítás

Az utasítás alakja:
kifejezés;
Speciális esete az üres utasítás, amikor a kifejezés elmarad.
Pl.:

i++;           // i értékét eggyel növeli
a=b+2;
a+=3;          // a értéke 3-mal nő
lnko(a,b);     // lnko nevű függvény hívása a és b paraméterekkel

Elágazás utasítás

Egyik fajtája:

if (kifejezés) utasítás;

if (kifejezés) utasítás1; else utasítás2;

A kifejezés igaz értéke esetén a kifejezés utáni utasítás hajtódik végre. Ha a kifejezés értéke hamis, akkor az első esetben az if utáni utasítás, a második esetben az else utáni utasítás kerül végrehajtásra. Ha több if utasítás van egymásba ágyazva, akkor az else ág a legutóbbi else nélküli if utasításhoz tartozik. Ha a második változatban az igaz ágon összetett utasítás szerepel, akkor nem szabad utána pontosvesszőt tenni, mert az az if lezárását jelentené.
Pl.:

if (a==5) Console.WriteLine(" Az a változónak 5 az értéke");  // ha a értéke 5, a kiírás megtörténik, künönben semmi hatása nincs
if (a>b) a++; else b++;    // ha a nagyobb mint b, akkor a értéke nő eggyel, különben b értéke nő eggyel
if (x>y)
{
	a=x+2;
	b=y+3;
}    // itt nem lehet ; mert van else ág
else
{
	a=y+2;
	b=x+3;
}

Másik fajtája a többirányú elágazás, ennek alakja:

switch (kifejezés)
{
case érték1: utasítás1;
case érték2: utasítás2;
...
default: utasítás;
}

A switch utáni kifejezés egész, vagy szöveg értékű lehet. Ha a kifejezés értéke a case után megadott értékkel nem egyezik, akkor a következő case vizsgálata következik. Ha a kifejezés értéke megegyezik a case utáni értékkel, akkor az ez utáni utasítás végrehajtódik. A default ág akkor kerül végrehajtásra, ha egyik case utáni értékkel sem egyezett meg a kifejezés értéke. Minden ágat kötelező valamilyen vezérlésátadással befejezni. Erre leggyakrabban a break utasítást használjuk. A case után csak egyetlen érték szerepelhet.
Pl.:

switch (körzetszám)
{
case 20:
Console.WriteLine("Pannon");
break;
case 30:
Console.WriteLine("TeleCom");
break;
default:
Console.WriteLine("Egyéb");
break;
}

Ciklus utasítás

A C#-ban négy fajta ciklus utasítás van, ezek a while, a do, a for és a foreach.

A while utasítás formája:

while (kifejezés) utasítás;

Először a kifejezés értékelődik ki, ha igaz az értéke, akkor az utasítás (ciklusmag) végrehajtódik, majd a kifejezés újból kiértékelődik, ha igaz az értéke, akkor az utasítás újból végrehajtódik, ez az ismétlődés mindaddig folytatódik, amig a kifejezés értéke hamissá nem válik. Ezt a ciklus utasítást szokás elöltesztelő ciklusnak nevezni. Ennél a ciklusfajtánál előfordulhat, hogy az utasítás egyszer sem hajtódik végre.
Pl.:

   int a=7;
while (a < 200)
{
Console.WriteLine(a);
a += 3;
}
//az eredmény egy számtani sorozat 7-tel kezdve 3-as lépésközzel 199-ig.

A do utasítás formája:

do utasítás; while (kifejezés);

Az utasítás (ciklusmag) végrehajtása után értékeli ki a kifejezést, és ha igaz az értéke, újból végrehajtja az utasítást, majd újból kiértékeli a kifejezést, és így tovább. A do ciklust szokták hátultesztelő ciklusnak nevezni. Itt az utasítás egyszer biztosan végrehajtódik. Pl.:

  string s;
do
{
Console.WriteLine("Gépelj valamit!");
s=Console.ReadLine();
}
while (s=="");
//addig ismétlődik, amíg a felhasználó be nem gépel valamit. "" jelöli az üres szöveget.

A for utasítás formája:

for (kifejezés1; kifejezés2; kifejezés3) utasítás;

Ez egyenértékű a következő alakkal

kifejezés1;
while (kifejezés2)
{
utasítás;
kifejezés3;
}

Mindegyik kifejezés elmaradhat, de a pontosvesszők nem.
Pl.:

for (a=7; a < 200; a += 3;)
Console.WriteLine(a);
//az eredmény a már említett számtani sorozat 7-tel kezdve 3-as lépésközzel 199-ig. for (; ; ;) // nem csinál semmit, de azt a végtelenségig, végtelen ciklus.

A foreach utasítás formája:

foreach (azonosító in sorozat) utasítás;

Az azonosító egyenként felveszi értékül a sorozat elemeit.
Pl.:

//egy nemnegatív 100-nál kisebb számokból álló t sorozatban megszámoljuk hány egy-, illetve kétjegyű szám van.
int[] t = new int[] { 1, 3, 7, 11, 5, 88, 55, 22, 12};
int egyjegyű = 0, kétjegyű=0;
foreach (int x in t)
{
  if (x<10)
      egyjegyű++;
  else
      kétjegyű++;
}
Console.WriteLine("A t sorozatban {0} egyjegyű és {1} kétjegyű szám van.", egyjegyű, kétjegyű);

Ugró utasítások

A break utasítás formája:

break;

Hatására befejeződik a legbelső while, for vagy switch utasítás végrehajtása. A programvégrehajtás a következő utasítással folytatódik. A switch utasításban a nem kívánt case ágak végrehajtását lehet vele elkerülni.

A continue utasítás formája:

continue;

Hatására a legbelső while, for, do ciklus vezérlő kifejezései, feltételei kerülnek kiértékelésre. A ciklus a ciklusmag további részét átugorja, és a következő ismételt ciklusmag-végrehajtásba kezd bele, vagy kilép, ha a vezérlőfeltételek úgy kívánják.

A return utasítás hatására a vezérlés visszatér a függvényből. Formája:

return;
return kifejezés;
return (kifejezés);

Vissza a tartalomjegyzékhez