Download - C# 2008 HALADÓKNAK
1
C# 2008 HALADÓKNAK
Vezérlési szerkezetek: elágazások, ciklusok
Szakképzési Portál
2
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
3
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;}
4
Elágazások egymásba ágyazása• Egymásba ágyazott elágazások:if (feltétel1){ utasítások;}else if (feltétel2){ utasítások;}…else if (feltételn){ utasítások;}else{ utasítások;}
• Például:if (x>0){ label1.Text="pozitív";}else if (x<0){ label1.Text="negatív";}else{ label1.Text="nulla";}
5
Elágazások: többirányú• Elágazás egy változó értékétől
függetlenülswitch (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ő!
6
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.
7
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.
8
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ülwhile (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.
9
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!
10
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.