JavaRush /Java блогу /Random-KY /Java тилиндеги Break билдирүүсү
iloveski
Деңгээл
Москва

Java тилиндеги Break билдирүүсү

Группада жарыяланган
Бардык кесиптештерге жана жөн гана кызыккандарга салам.
Java тorнде Break оператору - 1
Бүгүн биз Java программалоо тorнин break оператору сыяктуу өзгөчөлүгүн карайбыз. Бул өткөөл операторлор темасындагы биринчи макала, эгер сизге жакса, мен дагы көбүрөөк жазууга кубанычтамын. Мен дароо белгилеп кетким келет, бул макала биринчи кезекте башталгыч иштеп чыгуучуларга арналган жана андан да жогорку деңгээлдеги студенттер бул жерден өздөрү үчүн жаңы эч нерсе таба албашы мүмкүн. Ошентип, кетели. Java-да программалык инструкцияларды аткаруу тартибин өзгөртүүнүн 2 жолу бар: секирүү операторлору жана өзгөчө кырдаалдарды башкаруу механизми. Javaда үч секирүү оператору бар: үзүү, улантуу жана кайтуу. Бүгүн мен сизди оператор менен жакындан таанышууга чакырам break. Өзгөчөлүктөр менен иштөө ушунчалык кеңири тема болгондуктан, ал бул макаланын алкагына кирбейт. Java тorнде break операторун колдонуунун үч жолу бар. Биринчи жана эң популярдуу жолу - breakциклден эрте чыгуу үчүн аны колдонуу, мисалы:
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");
    }
}
Бул мисал көрсөтөт:
1
2
cycle was finished
Бул цикл эсептегичи iөткөн параметрге number, башкача айтканда, 3 санына барабар болгондо циклдин аткарылышы эрте токтотулат дегенди билдирет. Эгерде программада бир нече уя салынган циклдер болсо, анда эң ички циклден гана үзгүлтүккө учурагыла, мисалы:
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");
    }
}
Бул мисал төмөнкүдөй жыйынтык чыгарат:
012
012
012
012
012
cycles was finished
Мисалдан көрүнүп тургандай, ички цикл ар бир жолу 3 санында үзгүлтүккө учурайт (параметр number), ал эми сырткы цикл 5 жолу белгиленгендей аткарылат. Javaда сиз цикл ичинде бирден ашык break операторун колдонсоңуз болот, бирок бул сунушталbyte, анткени codeдун окулушу жана түзүлүшү абдан начарлаган. Экинчи колдонуу, breakаны фorалдардагы билдирүүлөрдүн аткарылышын үзгүлтүккө учуратуу үчүн колдонуу 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);
                break;
            case 2:
                System.out.println(number*number);
                break;
            case 3:
                System.out.println(number*number);
                break;
        }
        System.out.println("after switch");
    }
}
Бул мисалды иштетүү натыйжаны берет:
4
after switch
Break оператору башкарууну бүт блоктон кийинки codeго өткөрүп берди switch. breakЭгерде сиз бул мисалда көрсөтпөсөңүз 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");
    }
}
Чыгуу күтүлгөндөй болбойт:
4
4
after switch
Бул блок аткарылгандан кийин, case 2программа бардык кийинки кейс блокторун аткарууну уланткандыктан болду , бул бизге тиешелүү жыйынтыкты берди. Кээде оператордун бул өзгөчөлүгү switch биз үчүн пайдалуу болушу мүмкүн, мисалы:
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");
    }
}
Бул программа берилген санды 5 саны менен салыштырып, төмөнкү натыйжаны берет:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
Метод биринчи жолу чакырылганда, оператор switchбашкарууну операторго , андан кийин ичинде case 2операторго өткөрүп берет . Экинчи чакыруу биринчиге окшош, бирок с менен башталат . Үчүнчү чалуу бардык учурларда ылайыктуу маани таба алbyte, ошондуктан оператор аткарылат . Үчүнчү жол С операторунун ордуна операторду колдонуу.Ал үчүн биз энбелги менен аталган оператордун атайын формасын колдонобуз . Бул форма Энбелгиге окшош - бул, адатта, code блогунун алдындагы java аттар мейкиндигинен каалаган ылайыктуу ат. Мындан тышкары, codeдун бул блогун энбелгиси менен колдонгондон кийин, code тиешелүү энбелгиси бар блоктон кийинки орундан аткарыла берет, мисалы: 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");
        }
    }
}
Бул мисал төмөнкү натыйжаны берет:
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
Биринчи ыкманы чакыргандан кийин, оператор breakбашкарууну блоктун аягына өткөрүп secondBlock, чыгып secondBlock, аягында thirdBlockбашка операторду аткарат . Экинчи чалуудан кийин экранда бардык саптар көрсөтүлөт. Этикеттер циклдерди көрсөтүү үчүн да колдонулушу мүмкүн. Белгиленген code блогунун ичинен энбелгиге гана бара аларыңызды эстен чыгарбоо керек, мисалы, мындай code түзүлбөйт: 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");
    }
}
Код жана билдирүүнүн тазалыгы боюнча эскертүүлөр break: Билдирүүнү өтө кылдаттык менен колдонуу боюнча жалпы кабыл алынган кеңештер бар break, анткени колдонуу breakциклди түшүнүүнү кыйындатат жана программистти циклдин ичин карап чыгууга мажбурлайт, анын иштөө нюанстарын түшүнүү. Эвристикалык эреже бар, break сиз кыска циклдерде ишенимдүүрөөк жана узун жана терең уяланган циклдерде этияттык менен колдоно аласыз, анткени бул каталардын ыктымалдыгын жогорулатат жана башка программисттер тарабынан codeуңузду окууну жана түшүнүүнү кыйындатат. Мен жогоруда жазганымдай, codeдун боюна чачыраган көп сандагы .нын колдонулушу breakпрограммист өзүнүн codeун эмне үчүн мындай жазганын толук түшүнбөгөндүгүн көрсөтүп турат. Мындай циклди бир нече майда циклдерге бөлүү менен рефакторингди карап чыгуу керек. break этикеткасын ордуна колдонууда этият болууга аракет кылыңыз goto, анткени бул codeдун түзүлүшүн татаалдантат. breakМен бүгүн javaдагы оператор жөнүндө айткым келгендин баары ушул . Мен конструктивдүү сынга кубанычтамын, ошондой эле операторлор жөнүндө уландысын жазууга даярмын continueжана returnэгер кызыксаңыз.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION