Kihagyás

Ismétléses vezérlés

A C# fő ciklusai a for, a foreach, a while és a do-while. A Python for ... in range(...) számlálós ciklusának a C# for felel meg; a sorozat bejárására a foreach kényelmesebb.

for ciklus

A zárójelben sorrendben a kezdőérték, a futási feltétel és a léptetés szerepel.

for (int i = 0; i < 10; i++)
{
    Console.WriteLine(i); // 0, 1, ... 9
}
for i in range(10):
    print(i)

Visszafelé haladáshoz például for (int i = 9; i >= 0; i--) írható; Pythonban ennek range(9, -1, -1) felel meg.

foreach ciklus

Tömbökön és más bejárható gyűjteményeken használjuk, ha az indexre nincs szükség.

string[] nevek = { "Anna", "Béla", "Csilla" };
foreach (string nev in nevek)
{
    Console.WriteLine(nev);
}
nevek = ["Anna", "Béla", "Csilla"]
for nev in nevek:
    print(nev)

foreach közben a List<T> méretét ne módosítsuk Add vagy Remove hívással: ez futásidejű hibát okoz. Ha az index szükséges, használjunk for ciklust.

while ciklus

A feltételt minden ismétlés előtt ellenőrzi. Hasznos, ha nem tudjuk előre a lépések számát.

int i = 0;
while (i < 10)
{
    Console.WriteLine(i);
    i++;
}

Pythonban: while i < 10:; a ciklusváltozót ott is módosítani kell, különben végtelen ciklus keletkezhet.

do-while ciklus

A ciklusmag legalább egyszer végrehajtódik, mert a feltételt utána vizsgálja. Pythonban nincs közvetlen megfelelője; egy while True ciklusból break-kel léphetünk ki.

int szam;
do
{
    Console.Write("Adj meg egy pozitív egész számot: ");
} while (!int.TryParse(Console.ReadLine(), out szam) || szam <= 0);

Console.WriteLine($"A megadott szám: {szam}");

Ciklus megszakítása

break az egész ciklust befejezi, continue a következő ismétlésre lép. Ezek Pythonban is ugyanígy szerepelnek. A C# ciklusainál nincs Python-féle ciklushoz tartozó else ág.

for (int i = 0; i < 10; i++)
{
    if (i == 3) continue;
    if (i == 7) break;
    Console.WriteLine(i); // 0, 1, 2, 4, 5, 6
}

Feladat

Írd ki az 1 és 100 közötti hárommal osztható számokat! Ezután készíts beolvasó ciklust, amely csak akkor áll le, ha a felhasználó helyes, pozitív egész számot adott meg.