JavaRush /Java Blog /Random-TK /Java-da arakesme
iloveski
Dereje
Москва

Java-da arakesme

Toparda çap edildi
Hemme kärdeşlere we ýönekeý gyzyklanýanlara salam.
Java-da arakesme - 1
Bu gün Java programma diliniň arakesme operatory ýaly aýratynlygyna serederis. Bu geçiş operatorlary temasyndaky ilkinji makala, şonuň üçin halasaňyz, has köp ýazmaga begenerin. Bu makalanyň ilkinji nobatda täze döredijiler üçin niýetlenendigini we has ösen talyplaryň bu ýerde özleri üçin täze zat tapyp bilmejekdigini derrew belläsim gelýär. Geliň, gideli. Java-da programma görkezmeleriniň ýerine ýetiriliş tertibini üýtgetmegiň 2 usuly bar: bökmek jümleleri we kadadan çykma mehanizmi. Java-da üç bökmek operatory bar: döwmek, dowam etmek we gaýdyp gelmek. Bu gün sizi operatora has ýakyndan synlamaga çagyrýaryn break. Kadadan çykma meselesi şeýle giň mowzuk, bu makalanyň çäginden daşda. Java-da arakesmäni ulanmagyň üç usuly bar. breakIlkinji we iň meşhur usul , aýlawdan ir çykmak üçin ulanmak , mysal üçin:
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");
    }
}
Bu mysal görkeziler:
1
2
cycle was finished
Diýmek, aýlaw hasaplaýjy igeçen parametr bilen deň bolanda number, ýagny 3-nji belgä öwrülende, aýlaw ýerine ýetirilişi ir bes edilýär. Programmanyň birnäçe öýjükli aýlawlary bar bolsa, netijeleri diňe içki aýlawdan aýyryň:
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");
    }
}
Bu mysal çykyş edýär:
012
012
012
012
012
cycles was finished
Mysaldan görnüşi ýaly, içki aýlaw her gezek 3 belgide (parametr number) kesilýär we daşarky aýlaw göz öňünde tutulşy ýaly 5 gezek ýerine ýetirilýär. Java-da, bir aýlawyň içinde birden köp arakesme ulanyp bilersiňiz, ýöne bu maslahat berilmeýär, sebäbi koduň okalmagy we gurluşy gaty peselýär. Ikinji ulanylyş break, şahalarda jümleleriň ýerine ýetirilmegini kesmek üçin ulanmak switch, mysal üçin:
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");
    }
}
Bu mysaly işletmek netijäni berer:
4
after switch
Arakesme beýany, ähli blokdan soň koda gözegçilik etdi switch. Bu mysalda breakgörkezmeseňiz :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");
    }
}
Çykyş garaşylşy ýaly bolmaz:
4
4
after switch
Bu boldy, sebäbi blok ýerine ýetirilenden soň, case 2programma bize degişli netijäni berýän indiki ähli blok bloklaryny ýerine ýetirmegi dowam etdirdi. Käwagt operatoryň bu aýratynlygy switch bize peýdaly bolup biler, mysal üçin:
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");
    }
}
Bu programma berlen belgini 5 san bilen deňeşdirýär we aşakdaky netijäni berýär:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
Haçan-da bir usul ilkinji gezek çagyrylanda, operator switchgözegçiligi operatora , soňra case 2bolsa operatora geçirýär . Ikinji jaň birinjä meňzeýär, ýöne c bilen başlaýar . Üçünji jaň ähli ýagdaýlaryň arasynda laýyk bahany tapmaýar, şonuň üçin operator ýerine ýetirilýär . Üçünji ýol, C operatorynyň ýerine operatory ulanmakdyr . Munuň üçin bellik bilen atlandyrylan operatoryň ýörite görnüşini ulanarys . Bu görnüş Etiketka meňzeýär - bu adatça kod blokundan öň java at giňişliginden islendik laýyk at. Mundan başga-da, bu kod blokyny bellik bilen ulananyňyzdan soň, kod degişli bellik bilen blokdan soň ýerden ýerine ýetirilmegini dowam etdirer: 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");
        }
    }
}
Bu mysal aşakdaky netijäni berer:
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
Ilkinji usul jaňyndan soň, operator breakbloky ujuna geçirýär secondBlock, çykýar secondBlockwe ahyrynda thirdBlockbaşga bir operatory ýerine ýetirýär . Ikinji jaňdan soň ähli setirler ekranda görkezilýär. Etiketkalar siklleri görkezmek üçin hem ulanylyp bilner. Diňe bellik bilen görkezilen kod blokynyň içinden bir bellige baryp biljekdigiňizi ýadyňyzdan çykarmaly däldiris, mysal üçin, şeýle kod düzülmez: 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 we jümle arassalygy barada bellikler break: Jümläni gaty ünsli ulanmak üçin umumy kabul edilen maslahatlar bar break, sebäbi ulanylyş breakaýlawy düşünmegi kynlaşdyrýar we programmisti işiniň nuanslaryna düşünmek üçin aýlawyň içine seretmäge mejbur edýär. Gysga aýlawlarda has ynamly we uzyn we çuňňur höwürtgelenen aýlawlarda has seresaplylyk bilen ulanyp boljak ýewreý düzgüni bar break , sebäbi bu ýalňyşlyklaryň ähtimallygyny ýokarlandyrýar we beýleki programmistler tarapyndan koduňyzyň okalmagyny we düşünilmegini kynlaşdyrýar. Aboveokarda ýazyşym ýaly, köp sanly koduň ýaýramagy breakprogrammistiň koduny näme üçin ýazandygyna doly düşünmeýändigini görkezýär. Şeýle aýlawy birnäçe kiçi aýlawlara bölüp, gaýtadan işlemegi göz öňünde tutup bileris. break Belligi çalyşmak üçin ulananyňyzda seresap boluň goto, sebäbi bu kod gurluşyny kynlaşdyrýar. Ine, şu gün breakjava operatory hakda size aýtmak islän zadym. Konstruktiw tankydy begendim, operatorlar hakda continuewe returngyzyklanýan bolsaňyz, dowamy ýazmaga taýyn.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION