C# For Tsikl operatori

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:

i, j : 0 10 i, j : 1 9 i, j : 2 8 i, j : 3 7

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");
       }
   }
}
n=123 Rost