Mis on tsüklid?
Tsükkel on konstruktsioon, mis kordab koodiplokki mitu korda. Selle asemel, et kirjutada sama asja kümme korda, kirjutatakse tsükkel. Tsüklid on programmeerimises ühed olulisemad tööriistad — neid kasutatakse andmete töötlemisel, loendamisel, kasutaja sisendi korduvaks küsimisel ja palju muuks.
C#-s on neli erinevat tsüklit: for, while, do-while ja foreach. Igaühel on oma otstarve.
for-tsükkel
for-tsüklit kasutatakse siis, kui korduste arv on ette teada. See koosneb kolmest osast:
- algväärtus — kust loendamine algab
- tingimus — millal tsükkel lõpeb
- samm — kuidas loendaja muutub
for (algväärtus; tingimus; samm)
// Kuvame numbrid 1 kuni 10
for (int i = 1; i <= 10; i++)
{
Console.WriteLine("Arv: " + i);
}
// Loendame tagurpidi 5-st 1-ni
for (int i = 5; i >= 1; i--)
{
Console.WriteLine(i + "...");
}
Console.WriteLine("Start!");
// Arvutame 1 kuni 100 summa
int summa = 0;
for (int i = 1; i <= 100; i++)
{
summa += i; // sama mis summa = summa + i
}
Console.WriteLine("Summa 1 kuni 100: " + summa);
while-tsükkel
while-tsüklit kasutatakse siis, kui korduste arv ei ole ette teada — tsükkel jätkub seni, kuni tingimus on tõene. Oluline on jälgida, et tingimus lõpuks muutuks vääraks, muidu jookseb tsükkel lõputult.
// Küsime salasõna seni, kuni kasutaja sisestab õige
string oige = "maasikas";
Console.Write("Sisesta salasõna: ");
string sisestatud = Console.ReadLine();
while (sisestatud != oige)
{
Console.WriteLine("Vale salasõna! Proovi uuesti.");
Console.Write("Sisesta salasõna: ");
sisestatud = Console.ReadLine();
}
Console.WriteLine("Õige! Tere tulemast.");
// Kuvame paarisarvud 2 kuni 20
int arv = 2;
while (arv <= 20)
{
Console.Write(arv + " ");
arv += 2; // liidame 2, et saada järgmine paarisarv
}
do-while-tsükkel
do-while on sarnane while-ga, kuid erinevus on oluline: koodiplokk täidetakse alati vähemalt üks kord, isegi kui tingimus on kohe algusest väär. Tingimust kontrollitakse alles pärast esimest täitmist.
// Menüü, mis kuvatakse alati vähemalt kord
int valik;
do
{
Console.WriteLine("\n=== MENÜÜ ===");
Console.WriteLine("1 - Alusta mängu");
Console.WriteLine("2 - Vaata tulemusi");
Console.WriteLine("3 - Välju");
Console.Write("Sinu valik: ");
valik = int.Parse(Console.ReadLine());
if (valik == 1) Console.WriteLine("Mäng algab!");
else if (valik == 2) Console.WriteLine("Tulemused puuduvad.");
else if (valik != 3) Console.WriteLine("Vale valik!");
} while (valik != 3); // kordame kuni kasutaja valib 3
Console.WriteLine("Nägemist!");
foreach-tsükkel
foreach-tsüklit kasutatakse kogumite (massiivid, listid) läbimiseks. See on kõige lihtsam viis kõigi elementide töötlemiseks — ei pea ise indeksit haldama.
// Käime läbi nimede massiivi
string[] nimed = { "Anna", "Marta", "Jaan", "Peeter", "Liis" };
foreach (string nimi in nimed)
{
Console.WriteLine("Tere, " + nimi + "!");
}

Millal kasutada millist tsüklit?
for— kui tead täpselt, mitu korda korrata (nt 10 korda, 1 kuni 100)while— kui ei tea korduste arvu, aga tead lõpetamise tingimustdo-while— kui kood peab täituma vähemalt üks kord (nt menüü kuvamine)foreach— kui käid läbi massiivi või listi kõik elemendid
using System;
class Program
{
static void Main()
{
// for — korrutustabel
Console.Write("Sisesta arv, mille korrutustabel kuvada: ");
int arv = int.Parse(Console.ReadLine());
Console.WriteLine($"\n{arv} korrutustabel:");
for (int i = 1; i <= 10; i++)
{
Console.WriteLine($"{arv} x {i} = {arv * i}");
}
// while — arvamine mäng
Console.WriteLine("\n=== Arva arv ===");
int salaarv = 42;
int arvamine;
do
{
Console.Write("Sisesta oma arvamine (1-100): ");
arvamine = int.Parse(Console.ReadLine());
if (arvamine < salaarv)
Console.WriteLine("Liiga väike!");
else if (arvamine > salaarv)
Console.WriteLine("Liiga suur!");
} while (arvamine != salaarv);
Console.WriteLine("Õige! Arvasid arvu " + salaarv + " ära!");
}
}
Tultmus:
