JavaRush /Java Blog /Random-ID /Pernyataan istirahat di Jawa
iloveski
Level 37
Москва

Pernyataan istirahat di Jawa

Dipublikasikan di grup Random-ID
Halo untuk semua kolega dan mereka yang tertarik.
Pernyataan break di Java - 1
Hari ini kita akan melihat fitur bahasa pemrograman Java seperti operator break. Ini adalah artikel pertama tentang topik operator transisi, jadi jika Anda menyukainya, saya akan dengan senang hati menulis lebih banyak lagi. Saya ingin segera mencatat bahwa artikel ini ditujukan terutama untuk pengembang pemula, dan siswa yang lebih mahir mungkin tidak menemukan sesuatu yang baru di sini. Jadi ayo pergi. Di Java, ada 2 cara untuk mengubah urutan eksekusi instruksi program: pernyataan lompat dan mekanisme penanganan pengecualian. Ada tiga operator lompat di java: break, continue, dan return. Hari ini saya mengundang Anda untuk melihat lebih dekat operatornya break. Penanganan pengecualian adalah topik yang luas sehingga berada di luar cakupan artikel ini. Ada tiga cara untuk menggunakan pernyataan break di java. Cara pertama dan terpopuler adalah menggunakannya breakuntuk keluar dari loop lebih awal, misalnya:
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");
    }
}
Contoh ini akan menampilkan:
1
2
cycle was finished
Ini berarti bahwa ketika penghitung loop imenjadi sama dengan parameter yang diteruskan number, yaitu angka 3, eksekusi loop dihentikan lebih awal. Jika program memiliki beberapa loop bersarang, maka pisahkan keluaran hanya dari loop terdalam, misalnya:
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");
    }
}
Contoh ini menghasilkan keluaran:
012
012
012
012
012
cycles was finished
Seperti dapat dilihat dari contoh, loop dalam diinterupsi setiap kali pada nomor 3 (parameter number), dan loop luar dieksekusi 5 kali, sebagaimana dimaksud. Di java, Anda dapat menggunakan lebih dari satu pernyataan break dalam satu loop, namun hal ini tidak disarankan, karena keterbacaan dan struktur kode sangat menurun. Kegunaan kedua breakadalah menggunakannya untuk menghentikan eksekusi pernyataan di cabang switch, misalnya:
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");
    }
}
Menjalankan contoh ini akan menghasilkan keluaran:
4
after switch
Pernyataan break meneruskan kontrol ke kode yang mengikuti seluruh blok switch. Jika Anda tidak menentukan breakdalam switchcontoh ini:
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");
    }
}
Outputnya tidak akan seperti yang diharapkan:
4
4
after switch
Hal ini terjadi karena setelah blok dieksekusi, case 2program terus mengeksekusi semua blok kasus berikutnya , yang memberi kita keluaran yang sesuai. Terkadang fitur operator ini switch dapat bermanfaat bagi kita, misalnya:
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");
    }
}
Program ini membandingkan angka tertentu dengan angka 5 dan memberikan keluaran sebagai berikut:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
Ketika suatu metode dipanggil untuk pertama kalinya, operator switchmentransfer kendali ke operator case 2dan kemudian ke operator breakdi case 5. Panggilan kedua mirip dengan panggilan pertama, tetapi dimulai dengan c case 7. Panggilan ketiga tidak menemukan nilai yang sesuai di antara semua kasus, sehingga operator dijalankan default. Cara ketiga adalah dengan menggunakan operator breaksebagai pengganti gotooperator C. Untuk melakukan ini, kita akan menggunakan bentuk operator khusus breakyang disebut breakdengan label. Formulir ini terlihat seperti break метка;Label - biasanya berupa nama apa pun yang cocok dari namespace java, sebelum blok kode. Selain itu, setelah menerapkan blok kode ini breakdengan label, kode tersebut akan terus dieksekusi dari tempat setelah blok dengan label yang sesuai, misalnya:
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");
        }
    }
}
Contoh ini akan menghasilkan keluaran sebagai berikut:
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
Setelah pemanggilan metode pertama, operator breakmentransfer kontrol ke akhir blok secondBlock, keluar secondBlockdan thirdBlock, sambil mengeksekusi operator lain println()di akhir firstBlock. Setelah panggilan kedua, semua saluran ditampilkan di layar. Label juga dapat digunakan untuk menunjukkan siklus. Perlu diingat bahwa Anda hanya dapat membuka label dari dalam blok kode yang ditunjukkan oleh label; misalnya, kode tersebut tidak dapat dikompilasi:
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");
    }
}
Catatan tentang kebersihan kode dan pernyataan break: Ada saran yang diterima secara umum untuk menggunakan pernyataan breakdengan sangat hati-hati, karena penggunaan tersebut breakmembuat loop lebih sulit untuk dipahami dan memaksa pemrogram untuk melihat ke dalam loop untuk memahami nuansa operasinya. Ada aturan heuristik yang break dapat Anda gunakan dengan lebih percaya diri dalam loop yang lebih pendek dan lebih hati-hati dalam loop yang panjang dan bersarang dalam, karena hal ini meningkatkan kemungkinan kesalahan dan mempersulit pembacaan dan pemahaman kode Anda oleh pemrogram lain. Seperti yang saya tulis di atas, penggunaan sejumlah besar break.yang tersebar di seluruh kode menunjukkan bahwa programmer tidak sepenuhnya memahami mengapa dia menulis kodenya seperti itu. Mungkin ada baiknya mempertimbangkan untuk memfaktorkan ulang loop seperti itu dengan memecahnya menjadi beberapa loop yang lebih kecil. Cobalah berhati-hati saat menggunakan break label sebagai pengganti goto, karena ini akan mempersulit struktur kode. Itu saja yang ingin saya ceritakan hari ini tentang operator breakdi java. Saya akan dengan senang hati menerima kritik yang membangun, dan saya juga siap menulis lanjutan tentang operator continuedan return, jika anda tertarik.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION