• Switch operatori.
  • O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi buxoro davlat universiteti




    Download 221 Kb.
    bet9/25
    Sana29.01.2024
    Hajmi221 Kb.
    #147850
    1   ...   5   6   7   8   9   10   11   12   ...   25
    Bog'liq
    O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi b

    (Ichma ich) shart operatorlari. 


    23

    Ichma ich shart operatorlari - bu C# dasturlash tilining afzalligi bo’lib, bunda
    bir necha murakkab shartlarni bir shart orqali tekshirish, aniqlash mumkin. Bir 
    o’zgaruvchi qiymatini bir necha shartlar orqali tekshirish uchun ichma ich bir
    necha shart operatorlaridan foydalanish mumkin :


    using System; 

    class Values 



    static void Main( ) 



    int temp = 25; 

    if (temp > 21) 



    if (temp < 26) 



    Console.WrireLine ( 

    "Temperatura meyorda"); 

    if (temp == 24) 



    Console.WriceLine("ishlash sharoiti optimal"); 



    else 



    Console .WriteLine ("ishlash sharoiti optimal emas\n" +

    "optimal temperatura 24");

    } } } 
    Ko’p shartlilik qo’llanilishi. 
    Bunda bir necha shartni bir vaqtda tekshirish zarurati hisobga olinadi. C# 

    tilida buning uchun maxsus qo’shish (shartni) kalit so’zlari mavjud : &&  va,


    | |  yoki, !  inkor (!= bo’lsa, teng emas ma’nosida) . 
    Misol:

    24
    using


    System;
    using

    System.Text;
    namespace
    hhhhh
    {

    class
    Program

    {

    static

    void

    Main(
    string



    [] args)

    double

    a, b, c;


    Console
    .Write(

    "a="
    );

    a =
    int

    .Parse(
    Console

    .ReadLine());
    Console
    .Write(

    "b="
    );

    b =
    int

    .Parse(
    Console

    .ReadLine());
    Console
    .Write(

    "c="
    );

    c =
    int

    .Parse(
    Console

    .ReadLine());
    if
    ((a + b > c) && (a + c > b) && (b + c > a)) 

    {
    Console


    .WriteLine(
    "uchburchak yasaldi!"
    );

    double


    s=0, p=(a+b+c)/2;
    s = 
    Math
    .Sqrt(p*((p - a)*(p - b)*(p -c))); 

    Console


    .WriteLine(
    "yuzasi s="
    + s);

    else

    Console


    .WriteLine(
    "uchburchak yasalmadi!"
    );

    Console
    .ReadKey(); 


    }
    }

    }
    Natija: Uchburchak yasalishini tekshiradi va uni yuzini 


    hisoblab beradi!

    25
    Bu misolda har bir if operatori ikkita shartni tekshirib boradi. 




    Switch operatori. 
    Juda ko’p hollarda ichma ich yozilgan shart operatorlari ko’p tekshirish olib 

    borib bir nechta amal bajaradi. Lekin bulardan faqat bittasigina haqiqiy bo’ladi.


    Masalan,


    if (a == 10) Console.WriteLine("a teng 10"); 

    else 

    if (a == 20) Console.WriteLine(a teng 20 " ) ; 

    else 

    if (a == 30} Console.WriteLine("a teng 30 " ) ; 

    else .... 
    Bunday murakkab shart tekshirilishi bo’lganda if operatoridan ko’ra, uning yangi 
    versiyasi bo’lgan switch dan foydalanish afzal.Switch operatori quyidagicha
    ishlaydi : 
    Switch (ifoda)
    {
    case : o’zgarmas ifoda : instruksiya 

    o’tish ifodasi


    [default : instruksiya] 
    }
    Ko’rinib turibdiki, switch da ham tekshirilayotgan ifoda if … else dagi kabi, ( ) 

    orasiga olingan va operatordan keyin yozilgan.Case(tekshirish) va default (aks


    holda) bo’limlari
    qaysi amal bajarilishi zarurligini aniqlab beradi.Case operatori albatta biror bir
    tenglashtirish uchun qiymat talab qiladi. 




    switch (a) 

    case 10: 

    Console.WriteLine("a 10") ; 

    break; 

    26



    case 20: 


    Console.WriteLine("a 20"); 

    break; 

    case 30: Console.WriteLine("a 30"); 

    break; 

    }
    Switch operatorida default amalini yozish shart emas, chunki u berilgan 
    qiymatning tanlangan birorta qiymatga mos kelmaganda bajariladigan amallarni
    o’z ichiga oladi. Agarda berilgan qiymat birorta tanlangan qiymatga mos kelsa, u 
    holda case amalidan keyin bajariladigan amallar (ular bir nechta bo’lsa, { } orasiga
    olinadi) bajariladi, so’ng break amali switch operatorining ishini shu joyda 
    to’xtatadi va switch operatoridan keyin keladigan operator ishini davom ettiradi.
    C va C++ tillarida keyingi case amaliga avtomatik o’tishingiz mumkin, agarda 
    oldingi case amalining oxirida break yoki goto operatorlari yozilmagan bo’lsa.
    Shunday qilib, C# va C++ da quyidagicha yozish mumkin : 


     Case : statement 1 ; 

    Case : statement 2; 

    Break ;
    Bu misolda statement 1 dan so’ng statement 2 ga avtomatik tarzda o’tiladi 

    (C++ da). C# da bu dastur ishlamaydi, chunki C# tili sintaksisida case1 dan case2


    ga ikki xil vaziyatda o’tish mumkin : agarda birinchi amal bo’sh bo’lsa yoki break, 
    goto operatorlari yordamida.Har bir case operatori o’zida break amalini ushlab
    turishi lozim. 
    Masalan oddiy hafta kunlarini aniqlash dasturini ko’ramiz:
    static void Main(string[] args) 
    {
    a1: Console.Write("hafta kunini kiriting - > "); 
    int a = int.Parse(Console.ReadLine());
    switch (a) {
    case 1: Console.WriteLine("Yakshanba");break;

    27
    case 2: Console.WriteLine("Dushanba"); break; 


    case 3: Console.WriteLine("Seshanba"); break;


    case 4: Console.WriteLine("Chorshanba"); break; 
    case 5: Console.WriteLine("Payshanba"); break;
    case 6: Console.WriteLine("Juma"); break; 
    case 7: Console.WriteLine("Shanba"); break;
    default: Console.WriteLine("xatolik bor!"); goto a1; break; 
    }
    Console.ReadKey(); 
    }
    Natija:

    Kiritilgan raqamga qarab hafta kunlarini aniqlab ekranga chop etadi!


    Switch va satrlar bilan ishlash. 
    Yuqorida keltirilgan misollarda userlar butun tipga tegishli edi.Agarda siz 

    switch operatorini satrli tipda ishlatmoqchi bo’lsangiz, u holda quyidagicha


    yozishingiz mumkin :


    Case “Artur”: 
    Agarda tekshirish uchun satrlar ko’p bo’lsa, butun tipli o’zgaruvchilar ko’p 
    marotaba case operatorini ishlatishga majbur etadi. 
    Misol :

    using
    System; 


    using
    System.Text; 

    namespace


    satrda

    {

    class


    Program

    {


    static

    void


    Main(
    string

    [] args)


    {
    Console

    .WriteLine(


    "Oyni bosh harf bilan kiriting!"
    );

    string
    oy =

    Console
    .ReadLine(); 


    28

    switch
    (oy) {
    case

    "Dekabr"


    :

    case


    "Yanvar"
    :

    case


    "Fevral"
    :
    Console

    .WriteLine(


    " Qish 2-oy"
    );
    break

    ;
    case


    "Mart"
    :


    case
    "Aprel"

    :
    case

    "May"
    :


    Console

    .WriteLine(


    " Bahor ! 5-oy"
    );
    break

    ;
    case


    "Iyun"
    :


    case
    "Iyul"

    :
    case

    "Avgust"


    :
    Console

    .WriteLine(


    " Yoz 8-oy"
    );
    break

    ;
    case


    "Sentabr"


    :

    case
    "Oktabr"

    :
    case

    "Noyabr"


    :
    Console

    .WriteLine(


    " Kuz 11-oy"
    );
    break

    ;
    default


    :

    Console

    .WriteLine(
    "kiritishda xatolik bor!"
    );
    break

    ;
    }


    Console

    .ReadKey();



    }
    }

    Natija :oyni bosh harf bilan kiriting ! 


    Iyun
    Yoz 6-oy 





    Download 221 Kb.
    1   ...   5   6   7   8   9   10   11   12   ...   25




    Download 221 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi buxoro davlat universiteti

    Download 221 Kb.