100 likes | 218 Views
C# 2008 HALADÓKNAK. Vezérlési szerkezetek: elágazások, ciklusok. Elágazások. Gyakran előfordul, hogy a programban döntési helyzet alakul ki, azaz bizonyos feltétel( ek ) teljesülésétől függően mást kell csinálnunk, mint amikor azok nem teljesülnek. Ezt hívjuk elágazásnak . Fajtái:
E N D
C# 2008 HALADÓKNAK Vezérlési szerkezetek: elágazások, ciklusok Szakképzési Portál
Elágazások • Gyakran előfordul, hogy a programban döntési helyzet alakul ki, azaz bizonyos feltétel(ek) teljesülésétől függően mást kell csinálnunk, mint amikor azok nem teljesülnek. • Ezt hívjuk elágazásnak. • Fajtái: • egy-, illetve kétirányú elágazás • többirányú elágazás
Elágazások: egy- és kétirányú • Egyirányú elágazás: if (feltétel) { utasítások; } • Kétirányú elágazás: if (feltétel) { utasítások; } else { utasítások; }
Elágazások egymásba ágyazása • Egymásba ágyazott elágazások: if (feltétel1) { utasítások; } elseif (feltétel2) { utasítások; } … elseif (feltételn) { utasítások; } else { utasítások; } • Például: if (x>0) { label1.Text="pozitív"; } elseif (x<0) { label1.Text="negatív"; } else { label1.Text="nulla"; }
Elágazások: többirányú • Elágazás egy változó értékétől függetlenül switch (kifejezés) { case érték1: utasítások; break;case érték2: utasítások; break;case érték3: utasítások; break; … default: utasítások; break; } • Szabályok: • A kifejezés csak int vagy char típusú lehet. • Intervallumot nem lehet megadni, és több értéket sem lehet felsorolni. • Nem lehet két sorban a case után ugyanaz az érték. • Ha a case után nem írunk utasítást, akkor a következő soron folytatódik a végrehajtás. • A default utáni utasításokat akkor hajtja végre, ha egyik felsorolt érték sem egyezik meg a kifejezés értékével. • A break utasítás minden ág végén kötelező!
Ciklusok • Ciklusokat akkor használunk, amikor egy adott tevékenységet (ciklusmag) többször végre kell hajtanunk. • Azokat a változókat, amelyektől a ciklus futása függ, ciklusváltozónak hívjuk. • Fajtái: • számláló: előre megadott számú alkalommal fut le a ciklusmag. • elöltesztelő: egy feltétel teljesülésétől függően hajtja végre a ciklusmagot (előfordulhat, hogy egyszer sem, ha a feltétel már kezdetben sem teljesül) • hátultesztelő: egyszer mindenképpen végrehajtja a ciklusmagot, majd addig ezt ismétli, amíg a feltétel teljesül.
Ciklusok: számláló • Előre megadott számú alkalommal fut le a ciklusmag. for ( kezdőérték-adás; feltétel; ciklusváltozó növelése) { utasítások; } • Példa: for (i=0; i<10; i++) { listBox1.Items.Add(i.ToString()); } • A példában az i a ciklusváltozó, amely sorban felveszi a 0, 1, 2, 3, …, 9 értékeket, ezeket beírja a listába, majd a ciklus futása befejeződik. • Megjegyzés: az i++ jelentése: i = i + 1.
Ciklusok: elöltesztelő • Egy feltétel teljesülésétől függően hajtja végre a ciklusmagot • Előfordulhat, hogy egyszer sem, ha a feltétel már kezdetben sem teljesül while (feltétel) { utasítások; } • Példa: while (!f.EndOfStream) { s = f.ReadLine(); listBox1.Items.Add(s); } • A példában addig olvasunk be egy szövegfájlból, amíg nem érünk a végére. Itt a ciklusváltozó szerepét az f fájlváltozó játssza.
Ciklusok: for és while • A for és a while ciklusok lényegében egyformák a C# nyelvben. • Példa: for (i=0; i<10; i++) { listBox1.Items.Add(i.ToString()); } int i=0; while (i<10) { listBox1.Items.Add(i.ToString()); i++; } • Ez alapján bármelyik átírható a másikra! • Figyeljünk oda, hogy a while ciklusból ne maradjon ki a ciklusváltozó változtatása, mert az végtelen ciklushoz vezet!
Ciklusok: hátultesztelő • Egyszer mindenképpen végrehajtja a ciklusmagot, majd addig ezt ismétli, amíg a feltétel teljesül. do { utasítások; } while (feltétel); Példa: i=0; ossz=0; do { i++; ossz += i; // jelentése: ossz = ossz + i } while (i<10); • A példában 1-től 10-ig összeadjuk a számokat.