for sikli o`ziga tegishli instruksiyaning bir necha marta takroran bajarilishini ta`minlaydi. Bitta instruksiya uchun uning yozilishi quyidagicha:
for (e`lon qilish; shart; iterasiya) instruksiya;
Agar for sikli dastur bloki (bir nechta instruksiya ketma-ketligi)ni takroran bajarishi kerak bo`lsa, u holda for siklining ko`rinishi quyidagicha bo`ladi:
for (e`lon qilish; shart; iterasiya)
{
instruksiyalar ketma-ketligi
}
E`lon qilish qismi qiymat o`zlashtirishdan iborat. Bu qismda siklni boshqaruvchi o`zgaruvchining boshlang`ich qiymati beriladi. Bu o`zgaruvchi hisoblagich vazifasini bajaradi, siklni boshqaradi. Shart qismi bool tipiga tegishli bo`lib, unda siklni boshqaruvchi o`zgaruvchi qiymati tekshiriladi. Shartning natijasi siklning yana bir bor bajarilishi yoki bajarilmasligini bildiradi. iteratsiya ifoda bo`lib, u har bir sikldan so`ng siklni boshqaruvchi o`zgaruvchining qiymati qanday o`zgarishini ko`rsatadi. for sikli toki shart “true” qiymatga ega ekan bajarilaveradi. Shart “false” qiymatga ega bo`lgandan keyin for siklidan keyingi instruksiya bajariladi.
Shart hamma vaqt for sikli bajarilishidan oldin tekshiriladi. Ya’ni agar shartni birinchi tekshirishdanoq false qiymat qabul qilsa, sikl umuman bajarilmaydi. Misol:
for (int x = 10; x < 5; x++)
Console.WriteLine(x); // bu instruksiya hech qachon bajarilmaydi.
for sikli odatda takrorlanishlar soni aniq bo`lgan holda ishlatiladi.
for siklini boshqarish uchun bir nechta o`zgaruvchidan foydalanish mumkin. Bu holda e`lon qilish qismida har bir o`zgaruvchiga qiymat berish vergul bilan ajratiladi.
Shartli ifoda for siklidagi shartli ifoda bool tipidagi qiymat qaytaradigan har qanday ifoda bo`lishi mumkin. Quyidagi dasturda shartli ifoda sifatida done o`zgaruvchisi ishlatilmoqda:
namespace UzbekDevs
{
internal class Program
{
static void Main(string[] args)
{
int i, j;
bool done = false;
for (i = 0, j = 10; !done; i++, j--)
{
if (i * i >= j) done = true;
Console.WriteLine("i, j : " + i + " " + j);
}
}
}
}
Natija:
Siklda har qanday element(e`lon qilish qismi, shart, iterasiya qismi) yoki birdaniga hammasi tushirib qoldirilishi mumkin.
Cheksiz sikl for siklidagi barcha elementlar tuchirib qoldirilganda cheksiz sikl hosil bo`ladi. Misol:
for (; ; )
{
// …
}
Bunday sikllar cheksiz davom etadi.
C# da for sikli tanasiz yani unga bog`liq instruksiyalarsiz ham bo`lishi mumkin. Ba`zan bunday sikllar juda qo`l keladi.
Agar siklni boshqaruvchi o`zgaruvchi faqat shu sikl uchun kerak bo`lsa va sikl tanasidan tashqarida ishlatilmasa, u holda boshqaruvchi o`zgaruvchini quyidagicha e`lon qilinadi.
Masalan:
n butun (n>0) son berilgan. Butunga bo‘lish va qoldiqini aniqlash amallaridan foydalanib n sonida 2 raqami borligi aniqlansin. Agar bor bo‘lsa 1 (rost) aks holda 0 (yolg’on) chiqarilsin.
namespace UzbekDevs
{
internal class Program
{
static void Main(string[] args)
{
Console.Write("n=");
int n = int.Parse(Console.ReadLine());
int k = 0;
while (n > 0)
{
if (n % 10 == 2)
{
Console.Write("Rost"); k++;
}
n /= 10;
}
if (k == 0) Console.Write("Yolg'on");
}
}
}