JavaRush /Java блогы /Random-KK /Java тіліндегі үзіліс операторы
iloveski
Деңгей
Москва

Java тіліндегі үзіліс операторы

Топта жарияланған
Барлық әріптестерге және жай ғана қызығушылық танытқандарға сәлем.
Java тіліндегі үзіліс операторы - 1
Бүгін біз Java программалау тілінің үзіліс операторы сияқты мүмкіндігін қарастырамыз. Бұл өтпелі операторлар тақырыбына арналған бірінші мақала, сондықтан сізге ұнаса, мен көбірек жазуға қуаныштымын. Бұл мақала негізінен жаңадан бастаған әзірлеушілерге арналғанын бірден атап өткім келеді, ал одан да жоғары деңгейлі студенттер бұл жерден өздері үшін жаңа ештеңе таба алмауы мүмкін. Ендеше, кеттік. Java тілінде бағдарлама нұсқауларының орындалу ретін өзгертудің 2 жолы бар: көшу операторлары және ерекше жағдайларды өңдеу механизмі. Java тілінде үш секіру операторы бар: үзу, жалғастыру және қайтару. Бүгін мен сізді оператормен жақынырақ танысуға шақырамын break. Ерекшеліктерді өңдеу өте кең тақырып болғандықтан, ол осы мақаланың ауқымынан тыс. Java тілінде 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 тілінде цикл ішінде бірнеше үзіліс операторын пайдалануға болады, бірақ бұл ұсынылмайды, өйткені 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операторға береді . Екінші қоңырау біріншіге ұқсас, бірақ c әрпінен басталады . Үшінші шақыру барлық жағдайлардың ішінде қолайлы мәнді таппайды, сондықтан оператор орындалады . Үшінші әдіс-С операторының орнына операторды қолдану.Ол үшін біз белгімен аталатын оператордың арнайы формасын қолданамыз . Бұл пішін Белгіге ұқсайды - бұл әдетте Java аттар кеңістігіндегі code блогының алдындағы кез келген қолайлы атау. Сонымен қатар, осы 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ты оқу мен түсінуді қиындатады. breakМен жоғарыда жазғанымдай, codeта шашыраңқы көп санды пайдалану программист өзінің codeын неге олай жазғанын толық түсінбейтінін көрсетеді. Мұндай циклды бірнеше кіші ілмектерге бөлу арқылы қайта өңдеуді қарастырған жөн. break Жапсырманы ауыстыру ретінде пайдалану кезінде абай болуға тырысыңыз goto, себебі бұл code құрылымын қиындатады. breakМен бүгін java тіліндегі оператор туралы айтқым келгені осы ғана . continueМен сындарлы сынға қуаныштымын, сонымен қатар операторлар туралы және returnсізді қызықтыратын болса, жалғасын жазуға дайынмын .
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION