C# da if, switch, for, while — eng sodda va amaliy qo'llanma
Dastur oqimini boshqarish uchun eng ko‘p ishlatiladigan to‘rt operator: if, switch, for, while. Keling, ularni eng sodda misollar va izohlar bilan ko‘rib chiqamiz.
✅ if / else — shart bo‘yicha qaror
Qachon? Bitta yoki bir nechta shartni tekshirish kerak bo‘lsa.
int age = 20;
if (age >= 18)
{
Console.WriteLine("Kirish mumkin");
}
else
{
Console.WriteLine("Kirish mumkin emas");
}
Past-past shartlar (else if)
int score = 72;
if (score >= 90) Console.WriteLine("A");
else if (score >= 80) Console.WriteLine("B");
else if (score >= 70) Console.WriteLine("C");
else Console.WriteLine("F");
Tez xatolar
-
{ }
qo‘ymaslik oqibatida noto‘g‘ri blok bajarilishi mumkin. - Shartlarni tartibli joylashtirmaslik (
>= 90
dan avval>= 70
yozish kabi).
✅ switch — qiymatga ko‘ra tanlash
Qachon? Bitta o‘zgaruvchining qiymatini bir nechta variant bilan solishtirish qulay bo‘lsa.
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("Dushanba");
break;
case 2:
Console.WriteLine("Seshanba");
break;
case 3:
Console.WriteLine("Chorshanba");
break;
default:
Console.WriteLine("Noma'lum kun");
break;
}
C# pattern matching (zamonaviy usul)
object input = 42;
switch (input)
{
case int n when n > 0:
Console.WriteLine($"Musbat butun: {n}");
break;
case string s when s.Length > 0:
Console.WriteLine($"Matn: {s}");
break;
default:
Console.WriteLine("Boshqa tur");
break;
}
Tez xatolar
-
break;
ni unutib, keyingi case’ga “oqib ketish” (fall-through) — C# da default ruxsat emas, lekingoto case
bilan nazoratli o‘tish mumkin. -
default
ni qo‘ymaslik (nomalum holat qolib ketadi).
✅ for — aniq marta takrorlash
Qachon? Takrorlash soni oldindan ma’lum bo‘lsa.
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"i = {i}");
}
Ichma-ich for (nested)
for (int r = 1; r <= 3; r++)
{
for (int c = 1; c <= 3; c++)
{
Console.Write($"({r},{c}) ");
}
Console.WriteLine();
}
Tez xatolar
- Cheksiz sikl: shart hech qachon
false
bo‘lmaydi. -
i++
o‘rniga noto‘g‘ri yangilash (i--
yoki umuman yangilamaslik).
✅ while — shart bajarilgunga qadar takrorlash
Qachon? Necha marta takrorlanishi oldindan noma’lum, shart bilan to‘xtatiladi.
int n = 5;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
do/while — kamida bir marta bajarish
string input;
do
{
Console.Write("Son kiriting (stop - to'xtash): ");
input = Console.ReadLine();
} while (input != "stop");
Tez xatolar
- Shart ichidagi o‘zgaruvchini yangilamaslik → cheksiz sikl.
-
do/while
da;
ni unutish.
🧪 Kichik mashqlar
1) FizzBuzz
1 dan 100 gacha: 3 ga bo‘linsa — Fizz
, 5 ga — Buzz
, ikkisiga — FizzBuzz
, aks holda sonning o‘zi.
for (int i = 1; i <= 100; i++)
{
if (i % 15 == 0) Console.WriteLine("FizzBuzz");
else if (i % 3 == 0) Console.WriteLine("Fizz");
else if (i % 5 == 0) Console.WriteLine("Buzz");
else Console.WriteLine(i);
}
2) Parol tekshirish (3 urinish)
while
bilan 3 marta parol so‘rang, to‘g‘ri bo‘lsa kirish, aks holda bloklash xabari.
3) Menu switch bilan
switch
orqali 1-Add, 2-Sub, 3-Mul, 4-Div — har biriga amal yozing, default
da xato.
🧠 Qachon qaysi biri?
- if — murakkab/ko‘p shartli mantiq (or/and bilan).
- switch — bitta qiymat ko‘plab variantlarga bo‘linadi.
- for — takrorlash soni aniq.
- while — takrorlash soni noma’lum, shartga bog‘liq.
⚙️ Tezkor shablonlar (snippet)
if/else
if (condition)
{
// todo
}
else
{
// else-part
}
switch
switch (value)
{
case A:
// ...
break;
case B:
// ...
break;
default:
// ...
break;
}
for
for (int i = 0; i < count; i++)
{
// loop body
}
while
while (condition)
{
// loop body
// update condition variables
}
Savollar yoki takliflar bormi? Izohlarda yozib qoldiring! ✍️
ElshodDev GitHub Profilim
Telegram channel
Top comments (0)