C# szelekciók, elágazások

10. osztály 10évf_c# C# programozás Programozás
csharp_feltétel

Az elágazásoknak min. 1 vagy több ága is lehet, ha több ága van mint kettő, akkor már összetett elágazásról van szó. Nézzünk egy egyszerű példát, bekérünk egy számot, és kiírjuk az abszolút értékét.  A // itt is az egysoros komment jele

Összetett feltétel

Csináljunk egy olyan programot, amely bekéri egy dolgozat maximális pontszámát, majd
az abból elért pontszámot és megadja a jegyet. Az egyszerűség kedvéért 90%-tól 5, 80%-tól 4, 70%-tól 3, 60%-tól 2 és 60% alatt elégtelen.

Jegyezzük meg, hogy egy if-elágazásnak csak EGY kimenetele lehet, nem lehet olyan hogy mindkét ág, tehát a hamis és a negatív ágban lévő utasítások is lefutnak!! Ha egy összetettebb feltételt szeretnénk leprogramozni szükségünk van akár több if-re is, ez egy kicsit bonyolultabbá teszi a kód megértését. Ha megfelelően használjuk a tabulátort és a kapcsos zárójeleket, akkor olvashatóbbá, érthetőbbé válik a kód.

Több feltétel vizsgálata: ÉS, VAGY (AND(&&) és az OR(||)

Mindegyikkel kettő vagy több feltételt tudunk vizsgálni.
Az and-nél(&&) csak akkor lépünk az igaz ágba, ha mind a kettő(vagy több, lényeg hogy az összes) feltétel igaz, ha csak egy is hamis értékkel tér vissza, akkor már a kimenet is hamis lesz. Az or-nál(||) elég csak egynek igaznak lennie, és a kimenet is igaz, viszont ha mindegyik hamis, akkor az eredmény is hamis lesz.

Elágazások: switch

A switch egy olyan elágazás, amelyben szinte végtelen elágazás lehetséges.

A case ággal új összehasonlítást hívunk és mögé írjuk az összehasonlítást, majd egy kettősponttal nyitjuk, nem ;-vel, utána kapcsos zárójel és még az utolsó zárójel előtt egy break; utasítás, ami később a ciklusból való kilépésre fog szolgálni. A default egy végső megoldás, akkor fog lefutni a default ágban lévő utasítás, ha semelyik case ág nem volt megfelelő. Mint az iffet is, a switchet is egymásba lehet tenni. Switchet akkor használjunk, ha az értékek kötöttek. Például egy dobókockánál, ahol 6 lehetőség van,
ezért könnyen lehet alkalmazni

Gyakorlati példák:

  • Kelvinből Celsius fokra átváltás oda-vissza, case használatával:
  • Testtömeg index kiszámítása
    Kérjünk be a felhasználótól egy testtömeget és egy magasságot, majd ezek alapján határozzuk meg a testtömeg indexét, és közöljük az eredményt!
  • Víz halmazállapota:
    Kérjünk be egy hőmérsékletet, ami alapján a program megmondja, milyen halmazállapotú a víz.
  • Burkolólap mennyiség kalkulátor:
    Kérjük be a helység méretét. Az egyszerűség kedvéért méterben számolunk. A területre ráhagyunk +10%-ot, hátha összetörik pár burkolólap.
    A formázott kiírásban a {0} azt jelenti, hogy a paraméter listában elhelyezett első elemet kell kiírni elsőként. A {1} jelentése hasonló, csak itt a második elemre hivatkozunk. és így tovább.
  • Véletlen számok: 
    Kérjünk be 2db számot, és a kettő közötti tartományba hozzunk létre 3db véletlen számot! A Random.Next eljárás egy véletlen számot állít elő. Megadhatjuk neki paraméterben mettől-meddig. Pl: int month = rnd.Next(1, 13);  (1-12 közötti szám)

Hónapok neveinek 

Kérjen be a program egy 1-12 közötti számot, majd írja ki melyik hónap az! (1-12 közötti szám ellenőrzése)

Példa: Bekért szám ellenőrzése