• Циклы
  • Dart tili bo'yicha qo'llanma 1-bob. Dart tiliga kirish Dart nima. Birinchi dastur




    Download 283,65 Kb.
    bet10/35
    Sana16.05.2024
    Hajmi283,65 Kb.
    #237313
    1   ...   6   7   8   9   10   11   12   13   ...   35
    Bog'liq
    Dart tili bo\'yicha qo\'llanma 1-bob. Dart tiliga kirish Dart nima

    Shartli tuzilmalar

    Shartli konstruktsiyalar, ma'lum shartlarga qarab, dastur ishini yo'llardan biri bo'ylab yo'naltirishga imkon beradi.


    Dartda quyidagi shart qo‘shimchalari qo‘llaniladi: if..else va switch..case, shuningdek the?: And ?? operatorlari.


    If / else tuzing


    If / else ifodasi ma'lum bir shartning haqiqatini tekshiradi va test natijalariga qarab, ma'lum bir kodni bajaradi:

    1
    2
    3
    4
    5

    int num1 = 6;
    int num2 = 4;
    if(num1>num2){
    print("Первое число больше второго");
    }

    If kalit so'zidan keyin qavs ichida shart mavjud. Agar bu shart bajarilsa va rost bo'lsa, jingalak qavslardan keyin if blokiga qo'shimcha joylashtiriladigan kod ishga tushiriladi. Bunda ikkita sonni solishtirish operatsiyasi shart vazifasini bajaradi.


    Bu erda birinchi raqam ikkinchisidan katta bo'lganligi sababli, num1> num2 ifodasi to'g'ri bo'lib, haqiqatni qaytaradi. Shuning uchun, boshqaruv jingalak qavslardan keyin kod blokiga kiradi va u erda joylashgan ko'rsatmalarni, xususan, chop etish usulini (“Birinchi raqam ikkinchisidan kattaroq”) bajarishni boshlaydi;. Agar birinchi raqam ikkinchidan kichik yoki teng bo'lsa, if blokidagi operatorlar bajarilmaydi.

    Ammo agar shart bajarilmasa, qandaydir choralar ko'rilishini xohlasak-chi? Bunday holda, biz else blokini qo'shishimiz mumkin:


    1
    2
    3
    4
    5
    6
    7

    int num1 = 6;
    int num2 = 4;
    if(num1>num2){
    print("Первое число больше второго");
    }
    else{
    print("Первое число меньше второго");

    Ammo raqamlarni solishtirganda, biz uchta holatni sanashimiz mumkin: birinchi raqam ikkinchidan katta, birinchi raqam ikkinchidan kichik va raqamlar teng. else if iborasi bilan biz qo'shimcha shartlarni bajarishimiz mumkin:




    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    int num1 = 6;
    int num2 = 8;
    if(num1>num2){
    print("Первое число больше второго");
    }
    else if(num1print("Первое число меньше второго");
    }
    else{
    print("Числа равны");
    }

    Mantiqiy operatorlardan foydalanib, siz bir vaqtning o'zida bir nechta shartlarni birlashtira olasiz:




    1
    2
    3
    4
    5

    int num1 = 8;
    int num2 = 6;
    if(num1 > num2 && num1>7){
    print("Первое число больше второго и больше 7");
    }

    Bu yerda if bloki bajariladi, agar num1> num2 rost bo'lsa va shu bilan birga num1> 7 rost bo'lsa.


    Kommutatsiya konstruktsiyasi


    Kalit / korpus konstruktsiyasi bir vaqtning o'zida bir nechta shartlarni bajarishga imkon beradi:


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    int num = 8;
    switch(num){
    case 1:
    print("число равно 1");
    break;
    case 8:
    print("число равно 8");
    num++;
    break;
    case 9:
    print("число равно 9");
    break;
    default:
    print("число не равно 1, 8, 9");
    }

    Taqqoslanadigan ifoda qavs ichidagi switch kalit so'zidan keyin keladi. Ushbu ifodaning qiymati ketma-ket holda case operatoridan keyingi qiymatlar bilan taqqoslanadi. Va agar moslik topilsa, u holda ma'lum bir ish bloki bajariladi.


    Shuni ta'kidlash joizki, case blokining oxirida uzilish bayonoti yoki quyidagi gaplardan biri bo'lishi kerak: davom etish, tashlash, qaytarish. Agar ish blokining oxirida ushbu bayonotlarning hech biri bo'lmasa, biz quyidagi holatda bo'lgani kabi xatolikka yo'l qo'yamiz:




    1
    2
    3
    4
    5
    6

    case 8:
    print("число равно 8");
    num++; // Ошибка ! Отсутствует оператор break
    case 9:
    print("число равно 9");
    break;

    Agar biz ham moslik topilmagan vaziyatni hal qilmoqchi bo'lsak, yuqoridagi misolda bo'lgani kabi standart blokni qo'shishimiz mumkin. Standart blok ixtiyoriydir.


    Shuningdek, biz bir vaqtning o'zida bir nechta ish bloklari uchun bitta amalni belgilashimiz mumkin:



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    int num = 3;
    int output = 0;
    switch(num){
    case 1:
    output = 3;
    break;
    case 2:
    case 3:
    case 4:
    output = 6;
    break;
    case 5:
    output = 12;
    break;
    default:
    output = 24;
    }
    print(output);

    Break iborasi oʻrniga oʻtish uchun yorliqni koʻrsatib, davom iborasidan foydalanishingiz mumkin:




    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    int num = 8;
    switch(num){
    case 1:
    print("число равно 1");
    break;
    case 8:
    print("число равно 8");
    num++;
    continue N9; // переход на метку N9
    N9: case 9:
    print("число равно 9");
    break;
    default:
    print("число не равно 1, 8, 9");
    }

    Bu erda davom iborasi N9 yorlig'iga o'tadi, bu mohiyatan keyingi ish blokini ifodalaydi. Yorliqning nomi o'zboshimchalik bilan. Bunday holda, davom operatorining harakati ba'zi dasturlash tillaridagi goto operatorining harakatiga o'xshaydi. Faqat bu holatda, yorliq kalit konstruktsiyasi ichida korpus bloklaridan biriga yoki standart blokga olib kelishi kerak.

    Uchlik operatsiya
    Uchlik operatsiya quyidagi sintaksisga ega: [birinchi operand shart]? [ikkinchi operand]: [uchinchi operand]. Shunday qilib, ushbu operatsiyada bir vaqtning o'zida uchta operand ishtirok etadi. Shartga qarab, uchlik operatsiya ikkinchi yoki uchinchi operandni qaytaradi: agar shart rost bo'lsa, ikkinchi operand qaytariladi; agar shart noto'g'ri bo'lsa, uchinchisi. Masalan:


    1
    2
    3
    4

    int x=3;
    int y=2;
    int z = xprint(z);

    Bu yerda uchlik amalning natijasi z o‘zgaruvchisidir. Birinchidan, x

    Циклы



    Looplar, ma'lum shartlarga qarab, ma'lum bir harakatni bir necha marta bajarishga imkon beradi. Dart tilida quyidagi turdagi halqalar mavjud: uchun esa qil... esa Loop uchun For tsikli quyidagi rasmiy ta'rifga ega:


    1
    2
    3
    4

    for ([инициализация счетчика]; [условие]; [изменение счетчика])
    {
    // действия
    }

    Loop uchun standartni ko'rib chiqing:



    1
    2
    3

    for (int i = 1; i < 9; i++){
    print("Квадрат числа $i равен ${i *i} \n");
    }

    Loop deklaratsiyasining birinchi qismi - int i = 1 hisoblagich i ni yaratadi va ishga tushiradi. Ya'ni, sikl bajarilgunga qadar hisoblagich qiymati 1 ga teng bo'ladi. Bu holda, bu o'zgaruvchini e'lon qilish bilan bir xil.


    Ikkinchi qism - tsiklning bajarilishi sharti. Bunday holda, tsikl i 9 ga yetguncha ishlaydi.


    Uchinchi qism esa hisoblagichni bir marta oshirmoqda. Shunga qaramay, biz bittaga oshirishimiz shart emas. Qisqartirish mumkin: i--.


    Natijada, tsikl bloki i qiymati 9 ga teng bo'lguncha 8 marta ishlaydi. Va har safar bu qiymat 1 ga ortadi.


    Loopni e'lon qilishda barcha shartlarni ko'rsatishimiz shart emas. Masalan, biz shunday yozishimiz mumkin:




    1
    2
    3
    4

    int i = 1;
    for (; ;){
    print("Квадрат числа $i равен ${i *i} \n");
    }

    Loopning ta'rifi bir xil bo'lib qoladi, faqat hozir ta'rifdagi bloklar bo'sh: for (;;). Endi boshlang'ich hisoblagich o'zgaruvchisi yo'q, shart yo'q, shuning uchun tsikl abadiy ishlaydi - cheksiz tsikl.


    Shu bilan bir qatorda, siz bir qator bloklarni o'tkazib yuborishingiz mumkin:



    1
    2
    3
    4
    5

    int i = 1;
    for (; i<9;){
    print("Квадрат числа $i равен ${i *i} \n");
    i++;
    }

    Bu misol birinchi misolga teng: bizda ham hisoblagich bor, faqat u tsikldan tashqarida yaratilgan. Bizda tsiklning bajarilishi uchun shart mavjud. For blokining o'zida allaqachon hisoblagich o'sishi mavjud.


    For tsikli bir vaqtning o'zida bir nechta o'zgaruvchilarni aniqlashi va boshqarishi mumkin:




    1
    2
    3
    4
    5

    int n = 10;
    for(int i=0, j = n - 1; i < j; i++, j--){
    print(i * j);
    }

    Loop qiling


    Do sikli avval sikl kodini bajaradi, keyin esa while operatoridagi shartni tekshiradi. Va bu shart to'g'ri bo'lsa, tsikl takrorlanadi. Masalan:


    1
    2
    3
    4
    5
    6

    int j = 7;
    do{
    print(j);
    j--;
    }
    while (j > 0);

    Bunday holda, sikl kodi j nol bo'lguncha 7 marta ishlaydi. Shuni ta'kidlash kerakki, do tsikli while ifodasidagi shart to'g'ri bo'lmasa ham, harakatning kamida bitta bajarilishini kafolatlaydi. Shunday qilib, biz yozishimiz mumkin:




    1
    2
    3
    4
    5
    6

    int j = -1;
    do{
    print(j);
    j--;
    }
    while (j > 0);

    Dastlab j 0 dan kichik bo'lsa ham, tsikl bir marta bajariladi.


    while tsikli


    while sikli ba'zi bir shartning haqiqatini darhol tekshiradi va agar shart rost bo'lsa, tsikl kodi bajariladi:


    1
    2
    3
    4
    5
    6

    int j = 6;
    while (j > 0){
    print(j);
    j--;
    }

    Davom etish va uzilish iboralari


    Break operatori sikl o'z ishini tugatmagan bo'lsa ham, istalgan vaqtda tsikldan chiqishga imkon beradi:


    1
    2
    3
    4
    5

    for (int i = 0; i < 10; i++){
    if (i == 5)
    break;
    print(i);
    }

    Hisoblagich 5 ga yetganda, break operatori ishga tushadi va tsikl tugaydi.


    Endi shunday qilamizki, agar raqam 5 bo'lsa, tsikl tugamaydi, faqat keyingi iteratsiyaga o'tadi. Buning uchun davom operatoridan foydalaning:




    1
    2
    3
    4
    5

    for (int i = 0; i < 10; i++){
    if (i == 5)
    continue;
    print(i);
    }

    Bu erda hisoblagich qiymati test shartini qoniqtirmaydigan 5 raqamiga yetganda, dastur shunchaki bu raqamni o'tkazib yuboradi va keyingi iteratsiyaga o'tadi.




    Download 283,65 Kb.
    1   ...   6   7   8   9   10   11   12   13   ...   35




    Download 283,65 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Dart tili bo'yicha qo'llanma 1-bob. Dart tiliga kirish Dart nima. Birinchi dastur

    Download 283,65 Kb.