JavaRush /Java blogi /Random-UZ /Java-da break bayonoti
iloveski
Daraja
Москва

Java-da break bayonoti

Guruhda nashr etilgan
Barcha hamkasblar va shunchaki qiziquvchilarga salom.
Java-da Break bayonoti - 1
Bugun biz Java dasturlash tilining break operatori kabi xususiyatini ko'rib chiqamiz. Bu o'tish operatorlari mavzusidagi birinchi maqola, shuning uchun agar sizga yoqsa, men ko'proq yozishdan xursand bo'laman. Darhol shuni ta'kidlashni istardimki, ushbu maqola birinchi navbatda boshlang'ich ishlab chiquvchilar uchun mo'ljallangan va yanada rivojlangan talabalar bu erda o'zlari uchun yangi hech narsa topa olmasligi mumkin. Shunday ekan, ketaylik. Java-da dastur ko'rsatmalarini bajarish tartibini o'zgartirishning 2 usuli mavjud: o'tish bayonotlari va istisnolarni boshqarish mexanizmi. Java-da uchta o'tish operatori mavjud: break, continue va return. Bugun men sizni operator bilan yaqindan tanishishga taklif qilaman break. Istisnolarni ko'rib chiqish shu qadar keng mavzuki, u ushbu maqola doirasidan tashqarida. Java'da break operatoridan foydalanishning uchta usuli mavjud. Birinchi va eng ommabop yo'l - uni breakloopdan erta chiqish uchun ishlatish, masalan:
public class SimpleExample {
    public static void main(String[] args) {
        findNumberInLoop(3);
    }
    public static void findNumberInLoop(int number){
        for (int i = 0; i < 10; i++) {
            if (i == number) {
                break;
            }
            System.out.println(i);
        }
        System.out.println("cycle was finished");
    }
}
Ushbu misol ko'rsatiladi:
1
2
cycle was finished
Bu shuni anglatadiki, tsikl hisoblagichi io'tgan parametrga number, ya'ni 3 raqamiga teng bo'lganda, tsiklning bajarilishi erta tugatiladi. Agar dasturda bir nechta ichki tsikllar bo'lsa, u holda chiqishlarni faqat eng ichki tsikldan uzing, masalan:
public class SimpleExample {
    public static void main(String[] args) {
        findNumberInLoop(3);
    }
    public static void findNumberInLoop(int number){
        for(int i = 0; i < 5; i++) {
            for (int j =0; j < 10; j++) {
                if(j == number) {
                    break;
                }
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println("cycles was finished");
    }
}
Ushbu misol chiqishni ishlab chiqaradi:
012
012
012
012
012
cycles was finished
Misoldan ko'rinib turibdiki, ichki halqa har safar 3-raqamda (parametr number) uzilib qoladi va tashqi tsikl 5 marta mo'ljallangan tarzda bajariladi. Java-da siz tsikl ichida bir nechta break iboralaridan foydalanishingiz mumkin, ammo bu tavsiya etilmaydi, chunki kodning o'qilishi va tuzilishi juda yomonlashgan. Ikkinchidan foydalanish, breakuni filiallardagi bayonotlarning bajarilishini to'xtatish uchun ishlatishdir switch, masalan:
public class SimpleExample {
    public static void main(String[] args) {
        square(2);
    }

    public static void square(int number){
        switch (number){
            case 1:
                System.out.println(number*number);
                break;
            case 2:
                System.out.println(number*number);
                break;
            case 3:
                System.out.println(number*number);
                break;
        }
        System.out.println("after switch");
    }
}
Ushbu misolni ishga tushirish quyidagi natijani beradi:
4
after switch
Break bayonoti butun blokdan keyingi kodga nazorat o'tdi switch. Agar siz ushbu misolda breakko'rsatmasangiz :switch
public class SimpleExample {
    public static void main(String[] args) {
        square(2);
    }
    public static void square(int number){
        switch (number){
            case 1:
                System.out.println(number*number);
            case 2:
                System.out.println(number*number);
            case 3:
                System.out.println(number*number);
        }
        System.out.println("after switch");
    }
}
Chiqish kutilganidek bo'lmaydi:
4
4
after switch
Buning sababi, blok bajarilgandan so'ng, case 2dastur barcha keyingi ish bloklarini bajarishda davom etdi , bu bizga mos keladigan natijani berdi. Ba'zida operatorning bu xususiyati switch biz uchun foydali bo'lishi mumkin, masalan:
public class SimpleExample {
    public static void main(String[] args) {
        compare(2);
        compare(7);
        compare(12);
    }
    public static void compare(int number){
        switch (number){
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("number is less than 5 or equal 5");
                break;
            case 6:
            case 7:
            case 8:
            case 9:
                System.out.println("number is greater than 5");
                break;
            default:
                System.out.println("number is less than 0 or greater than 9");
        }
        System.out.println("after switch");
    }
}
Ushbu dastur berilgan raqamni 5 raqami bilan taqqoslaydi va quyidagi natijani beradi:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
Usul birinchi marta chaqirilganda, operator switchboshqaruvni operatorga , keyin esa dagi case 2operatorga o'tkazadi . Ikkinchi qo'ng'iroq birinchisiga o'xshaydi, lekin c bilan boshlanadi . Uchinchi qo'ng'iroq barcha holatlar orasida mos qiymatni topa olmaydi, shuning uchun operator bajariladi . Uchinchi usul - C operatori o'rniga operatordan foydalanish.Buning uchun operatorning teg bilan chaqirilgan maxsus shaklidan foydalanamiz . Ushbu shakl Labelga o'xshaydi - bu odatda kod blokidan oldingi java nomlar maydonidan istalgan mos nomdir. Bundan tashqari, ushbu kod blokini yorliq bilan qo'llaganingizdan so'ng, kod tegishli yorliqli blokdan keyingi joydan bajarilishini davom ettiradi, masalan: breakcase 5case 7defaultbreakgotobreakbreakbreak метка;break
public class SimpleExample {
    public static void main(String[] args) {
        howWeUseLabels(true);
        System.out.println();
        howWeUseLabels(false);
    }
    public static void howWeUseLabels(boolean bool) {
        firstBlock:{
            secondBlock:{
                thirdBlock:{
                    System.out.println("We will see it always");
                    if(bool) {
                        break secondBlock;
                    }
                    System.out.println("We won't see it if bool == true");
                }
                System.out.println("We won't see it if bool == true");
            }
            System.out.println("We will see it always");
        }
    }
}
Ushbu misol quyidagi natijani beradi:
We will see it always
We will see it always

We will see it always
We won't see it if bool == true
We won't see it if bool == true
We will see it always
Birinchi usul chaqiruvidan so'ng operator breakboshqaruvni blokning oxiriga o'tkazadi secondBlock, chiqish secondBlockva oxirida thirdBlockboshqa operatorni amalga oshiradi . Ikkinchi qo'ng'iroqdan so'ng barcha chiziqlar ekranda ko'rsatiladi. Yorliqlar tsikllarni ko'rsatish uchun ham ishlatilishi mumkin. Shuni esda tutish kerakki, siz faqat yorliqda ko'rsatilgan kod blokining ichidan yorliqga o'tishingiz mumkin, masalan, bunday kod tuzilmaydi: println()firstBlock
public class SimpleExample {
    public static void main(String[] args) {
        label:{
            System.out.println("inside label");
        }
        if(true) {
            break label;
        }
        System.out.println("This is error");
    }
}
Kod va bayonotning tozaligi bo'yicha eslatmalar break: Bayonotni juda ehtiyotkorlik bilan ishlatish bo'yicha umumiy qabul qilingan tavsiyalar mavjud break, chunki foydalanish breaktsiklni tushunishni qiyinlashtiradi va dasturchini uning ishlash nuanslarini tushunish uchun tsiklning ichiga qarashga majbur qiladi. Evristik qoida mavjudki, break siz qisqaroq tsikllarda ishonchliroq va uzoq va chuqur o'rnatilgan tsikllarda ehtiyotkorlik bilan foydalanishingiz mumkin, chunki bu xatolik ehtimolini oshiradi va kodingizni boshqa dasturchilar tomonidan o'qish va tushunishni qiyinlashtiradi. Yuqorida yozganimdek, breakkod bo'ylab tarqalgan ko'p sonli dan foydalanish dasturchi o'z kodini nima uchun shunday yozganini to'liq tushunmasligidan dalolat beradi. Bunday halqani bir nechta kichik halqalarga bo'lish orqali uni qayta tiklashni ko'rib chiqishga arziydi. break Yorliq bilan almashtirish sifatida foydalanishda ehtiyot bo'lishga harakat qiling goto, chunki bu kod tuzilishini murakkablashtiradi. Bugun java tilidagi operator haqida sizga aytmoqchi bo'lgan narsam shu break. Men konstruktiv tanqiddan xursand bo'laman va agar qiziqsangiz, operatorlar haqida continueva davomini yozishga tayyorman .return
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION