Java Break va Continue

Break operatori

break kalit so’zi Java dasturlash tilida bir necha operatorlarda sindiruvchi hisoblanadi ya’ni ishlayotgan operator break funksiyasiga kelib oxiriga yetkazmasdan jarayonni tugallaydi. Ko’pincha sikl operatorlari (while va for) bilan ishlatiladi. JVM break kalit so’zini uchratishi bilan siklni to’xtatadi, garchi sikl shartli ifodasi true qiymatga ega bo’lsa ham. Quyidagi misolga e’tibor bering:

int x = 1;
while (x<= 20){
   System.out.println(x);

   if (x==16)
       break;
   x++;
}

x o‘zgaruvchisining dastlabki qiymati 1 ga teng va biz bunda while takrorlash operatori orqali x ning qiymatini konsulga chiqar va har chiqarishdan so‘ng uning qiymatini 1 taga oshir deb buyruq berdik. if shart operatori orqali agar x ning qiymati 16 ga teng bo‘lganda biz break operatori orqali jarayonni to’xtatdik. Va bizda konsulga 16 gacha bo‘lgan sonlar chiqadi.

Avvalgi darslarimizdan birida hafta kunlariga doir bitta misol ko’rib chiqgandik. O’sha kodni tahlil qilamiz.

String haftaKuni = “Juma”;
 
switch(haftaKuni) {
 
    case “Dushanba”  : { System.out.println("Haftaning 1-kuni");   break; }
    case “Seshanba”  : { System.out.println("Haftaning 2-kuni ");  break; }
    case “Chorshanba”  : { System.out.println("Haftaning 3-kuni ");   break; }
    case “Payshanba”  : { System.out.println("Haftaning 4-kuni "); break; }
    case “Juma”  : { System.out.println("Haftaning 5-kuni "); break; }
    case “Shanba”  : { System.out.println("Haftaning 6-kuni "); break; }
    case “Yakshanba”  : { System.out.println("Haftaning 7-kuni "); break; }
 
    default : { System.out.println("bunday hafta kuni mavjud emas: " + haftaKuni); }
  }

Bu yerda oddiy tanlov yuz bermoqda. haftaKuni nomli o‘zgaruvchining qiymati “Juma” va hafta kunlari orasidan shu qiymatdagi case ni izlaydi va topganidan so‘ng konsulga shu case da joylashgan amalni bajaradi va break operatori yordamida jarayon to’xtaydi. Agar biz har bir case blok oxirida break kalit so’zidan foydalanmasak, kod keyingi case larni ham tekshiriladi. Bu esa birinchidan foydasiz, chunki boshqa unday holat yoki qiymat yo’q. Ikkinchidan, behudaga vaqt sarflanadi. Bir narsani ta’kidlash joizki break operatori har doim takrorlash yoki tanlash operatorlari ichida ya’ni { } qavs ichida bo’lishi kerak aks holda funksiya xato ko‘rsatishi mumkin.

Continue operatori

continue operatori Java dasturlash tilida tarorlash operatorlari bilan ishlatiladi. JVM continue kalit so’zini uchratganda siklning keyingi iteratsiyasiga o’tib ketadi, joriy iteratsiya uchun qolgan kod qatorlari bajarilmaydi. Masalan, siz 1 dan 100 gacha bo’lgan sonlarni konsulga chiqarmoqchisiz va sizga 20 kerak emas, shu joyda siz continue finksiyasidan foydalanasiz. Quyidagi kodga e’tibor bering.

for (int i = 1; i <=100; i++) {
    if (i==20)
        continue;
    System.out.println(i);
}

Natijada 20 konsulga chiqarilmadi.

Ba’zi dasturlash tillarida goto kalit so'zi mavjud, va uning vazifasi biror holatda kodni qaysidir qismiga sakrash hisoblanadi. Java dasturlash tilida esa goto kalit so'zi mavjud emas, uning o’rniga break va continue kalit so’zlari yordam beradi. Shuningdek, bizga label deb nomlanadigan yorliqchalar yordam beradi. Quyida ikkita kodni misol tariqasida keltiramiz:

public static void main(String args[])
    {
    // Birinchi label
    label1:
        for (int i = 0; i < 3; i++) {
        // Ikkinchi label
        label2:
            for (int j = 0; j < 3; j++) {
                if (i == 1 && j == 1) {
 
                    // label1 dagi siklni sindiramiz
                    break label1;
                }
                System.out.println(i + " " + j);
            }
        }
    }

Ekranga quyidagilar chiqadi:

0 0 0 1 0 2 1 0

Endi keying kodga e’tibor bering:

public static void main(String args[])
    {
    // Birinchi label
    label1:
        for (int i = 0; i < 3; i++) {
        // Ikkinchi label
        label2:
            for (int j = 0; j < 3; j++) {
                if (i == 1 && j == 1) {
 
                    // label1 dagi siklni sakratamiz
                    continue label1;
                }
                System.out.println(i + " " + j);
            }
        }
    }

Ekranga quyidagilar chiqadi:

0 0 0 1 0 2 1 0 2 0 2 1 2 2