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 (
>= 90dan avval>= 70yozish 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 casebilan nazoratli o‘tish mumkin. -
defaultni 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
falsebo‘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/whileda;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, defaultda 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)