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.
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.
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.
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.