Bagaimana cara kerja break di loop bersarang python?

Loop adalah pola pemrograman umum di Python. Dengan satu putaran, Anda dapat mengulangi kode tanpa upaya manual. Misalnya, Anda dapat menggunakan loop untuk mengulangi daftar nama dan mengurutkannya. Terkadang, Anda mungkin perlu menempatkan satu lingkaran di dalam lingkaran lain. Ini disebut loop bersarang dalam pemrograman

Meskipun tidak ada yang istimewa tentang loop bersarang, sebagai pemula, mereka mungkin tampak sedikit menakutkan atau bertele-tele

Ini adalah panduan komprehensif untuk loop bersarang di Python. Anda akan belajar cara membuat loop bersarang, keluar darinya, melompat di antara loop, dan banyak lagi. Semua teori didukung dengan contoh ilustratif yang bagus

Apa itu Nested Loop di Python?

Istilah "bersarang" umumnya digunakan dalam pemrograman

Menurut definisi, kata "bersarang" berarti memiliki objek yang ditempatkan di dalam objek lain yang sejenis

Di Python, Anda dapat menempatkan kode apa pun yang valid di dalam sebuah loop. Bahkan bisa menjadi loop lain

Sebuah loop yang hidup di dalam sebuah loop disebut loop bersarang. Perhatikan bahwa nested loop bukan hanya konsep Python. Loop bersarang ada di semua bahasa pemrograman lain, jadi istilah ini bagus untuk dipelajari

Bagaimana Cara Kerja Nested Loop di Python?

Tidak ada batasan berapa banyak loop yang dapat Anda tempatkan di dalam satu loop

Untuk mendemonstrasikan cara kerja loop bersarang, mari kita gambarkan loop bersarang dari dua loop. Loop luar dan loop dalam

Inilah yang terlihat seperti sintaks umum dari perulangan for bersarang

for element in sequence1:
   for element in sequence2:
      # inner loop body here
   # outer loop body here

Setiap iterasi dari loop luar menyebabkan loop dalam menjalankan semua iterasinya. Loop luar tidak berjalan sebelum loop dalam dihentikan

Untuk memperjelas. Loop bersarang bukan hanya untuk loop. Anda dapat menempatkan while loop di dalam while loop, while loop di dalam for loop, dan lainnya. Nested loop adalah loop yang memiliki setidaknya satu loop di dalamnya

Skenario tipikal untuk menggunakan loop bersarang adalah saat bekerja dengan data multidimensi, seperti daftar daftar atau semacamnya

Mari kita lihat beberapa contoh sederhana dari loop bersarang

Contoh 1. Bersarang Untuk Loop

Mari gunakan perulangan for bersarang untuk mencetak tabel perkalian dari 10 angka pertama

for i in range(1, 11):
    for j in range(1, 11):
        print(i * j, end=" ")
    print()
_

Keluaran

1 2 3 4 5 6 7 8 9 10 
2 4 6 8 10 12 14 16 18 20 
3 6 9 12 15 18 21 24 27 30 
4 8 12 16 20 24 28 32 36 40 
5 10 15 20 25 30 35 40 45 50 
6 12 18 24 30 36 42 48 54 60 
7 14 21 28 35 42 49 56 63 70 
8 16 24 32 40 48 56 64 72 80 
9 18 27 36 45 54 63 72 81 90 
10 20 30 40 50 60 70 80 90 100

Mari kita lihat lebih dekat bagaimana program ini bekerja

  1. Loop luar mengulangi angka dari 1 hingga 10 dan menyimpan angka saat ini dalam variabel sementara i. Jadi pada iterasi pertama, i = 1, pada iterasi kedua, i = 2, dan seterusnya
  2. Lingkaran dalam juga mengulangi angka dari 1 hingga 10. Loop bagian dalam menyimpan nomor iterasi saat ini dalam variabel j
  3. Untuk setiap satu iterasi loop luar, loop dalam akan berjalan seluruhnya, yaitu 10 kali
  4. Jadi misalnya, selama iterasi pertama dari loop luar, i = 1 sementara j berubah dari 1 menjadi 10. Selama iterasi kedua, i = 2, dan j berubah dari 1 menjadi 10 lagi, dan seterusnya
  5. Hasilnya adalah tabel perkalian di mana setiap angka 1…10 dikalikan dengan 1…10
Illustration of the parts of a nested loop in Python

Omong-omong, jika Anda ingin memformat perkalian dengan baik agar angkanya sejajar di setiap kolom, Anda dapat mengonversi hasil perkalian menjadi string dan menggunakan metode untuk memaksa lebar menjadi sama.

Begini tampilannya dalam kode

for i in range(1, 11):
    for j in range(1, 11):
        print(f"{i * j}".ljust(3), end=" ")
    print()

Keluaran

1   2   3   4   5   6   7   8   9   10  
2   4   6   8   10  12  14  16  18  20  
3   6   9   12  15  18  21  24  27  30  
4   8   12  16  20  24  28  32  36  40  
5   10  15  20  25  30  35  40  45  50  
6   12  18  24  30  36  42  48  54  60  
7   14  21  28  35  42  49  56  63  70  
8   16  24  32  40  48  56  64  72  80  
9   18  27  36  45  54  63  72  81  90  
10  20  30  40  50  60  70  80  90  100 
_

Contoh 2. Loop While Bersarang

Demi kelengkapan, mari ulangi contoh di atas dengan menggunakan perulangan while bersarang. Inti dari contoh ini adalah untuk menunjukkan bahwa Anda juga dapat menempatkan while loop di dalam yang lain

Ini kodenya

i = 1
j = 1

while i <= 10:
    while j <= 10:
        print(i * j, end = " ")
        j += 1
    j = 1
    print()
    i += 1

Keluaran

1 2 3 4 5 6 7 8 9 10 
2 4 6 8 10 12 14 16 18 20 
3 6 9 12 15 18 21 24 27 30 
4 8 12 16 20 24 28 32 36 40 
5 10 15 20 25 30 35 40 45 50 
6 12 18 24 30 36 42 48 54 60 
7 14 21 28 35 42 49 56 63 70 
8 16 24 32 40 48 56 64 72 80 
9 18 27 36 45 54 63 72 81 90 
10 20 30 40 50 60 70 80 90 100 
_

Berikut ilustrasi bagian-bagian dari while loop bersarang di atas

Bagaimana Cara Mengontrol Aliran dari Nested Loop?

Di Python, Anda dapat mengontrol aliran atau loop. Dua pernyataan alur kontrol utama dalam Python adalah

  1. merusak. Pernyataan break keluar dari loop
  2. melanjutkan. Pernyataan continue menghentikan iterasi saat ini dari loop dan melompat ke loop berikutnya

Mari kita lihat lebih dekat bagaimana pernyataan ini bekerja dengan loop bersarang di Python

Bagaimana Cara Memutuskan Nested Loop?

Di Python, Anda bisa menggunakan pernyataan break untuk keluar dari loop. Ini berguna jika tidak ada alasan untuk melanjutkan perulangan. Misalnya, jika Anda menggunakan loop untuk menemukan nilai target, setelah target ditemukan, loop akan berhenti

Mari kita lihat contoh sederhana dari pernyataan break dalam aksi

target = 3

for number in range(10):
    print(number)
    if number == target:
        break

Keluaran

0
1
2
3
_

Di sini perulangan berakhir ketika angka iterasi adalah 3, yang merupakan angka target

Dalam loop bersarang, pernyataan break keluar dari loop dalam tetapi terus menjalankan loop luar. Jadi jika Anda memanggil pernyataan break di loop dalam dari konstruksi loop bersarang, itu tidak menghentikan seluruh loop tetapi hanya loop dalam

Misalnya, mari kita cetak setengah piramida tanda bintang sehingga jumlah tanda bintang adalah nomor baris dalam bentuk yang dibaca dari atas ke bawah

for i in range(1, 11):
    for j in range(1, 11):
        if j - i > 0:
            break
        print("*", end=" ")
    print()
_

Keluaran

for i in range(1, 11):
    for j in range(1, 11):
        print(i * j, end=" ")
    print()
_0

Dalam loop bersarang seperti ini, Anda dapat menganggap i sebagai nomor baris dan j sebagai nomor kolom

Di sini pernyataan break keluar dari loop dalam jika j – i kurang dari 0. Dengan kata lain, Anda berhenti menjalankan loop dalam jika jumlah bintang (*) lebih besar dari nomor baris

Baca lebih lanjut tentang mengontrol aliran loop menggunakan

Bagaimana Cara Melanjutkan Nested Loop?

Dalam Python, pernyataan continue memungkinkan Anda melewatkan "sisa" dari iterasi sebuah loop dan memulai iterasi berikutnya

Pernyataan ini tidak mengakhiri seluruh loop tetapi hanya iterasi saat ini. Pernyataan continue berguna jika tidak ada alasan untuk melanjutkan iterasi loop saat ini. Misalnya, jika Anda hanya ingin melakukan tindakan berdasarkan kondisi, Anda dapat menggunakan pernyataan lanjutkan untuk melewati tindakan tersebut

Anda dapat menggunakan pernyataan continue dalam loop bersarang seperti Anda akan menggunakannya pada satu loop

  1. Jika Anda memanggil pernyataan lanjutkan di loop dalam, iterasi saat ini berhenti, dan iterasi berikutnya dari loop dalam dimulai
  2. Jika Anda memanggil pernyataan continue sebelum loop dalam di badan loop luar, maka iterasi loop luar melompat ke iterasi berikutnya dengan melewatkan loop dalam

Sebagai contoh, mari kita cetak tanda bintang setengah piramida terbalik sehingga jumlah tanda bintang adalah nomor baris dalam bentuk yang dibaca dari bawah ke atas

for i in range(1, 11):
    for j in range(1, 11):
        print(i * j, end=" ")
    print()
_1

Keluaran

for i in range(1, 11):
    for j in range(1, 11):
        print(i * j, end=" ")
    print()
_2

Di sini pernyataan continue melompati loop dalam ke iterasi berikutnya jika i + j lebih dari 11. Dengan kata lain, loop dalam melewatkan pencetakan tanda bintang (*) jika nomor baris ditambah nomor kolom lebih dari 11

Pokoknya, intinya adalah untuk menunjukkan bagaimana pernyataan lanjutan bekerja dalam loop bersarang daripada berfokus pada detail bentuk. Jangan ragu untuk bermain dengan contoh di editor kode Anda

Loop Bersarang Satu Liner dengan Pemahaman Daftar

Di Python, Anda dapat membuat for loop lebih ringkas dengan menggunakan. Hal ini memungkinkan untuk ekspresi satu baris yang rapi daripada membuat loop diperluas pada beberapa baris kode

Mirip dengan bagaimana Anda bisa membuat loop for bersarang, Anda bisa membuat pemahaman daftar bersarang

Masih diperdebatkan apakah masuk akal untuk mengompres for loop menggunakan pemahaman. Beberapa berpendapat itu membuat kode lebih kompak dan lebih mudah dibaca. Yang lain mengatakan itu hanya membuat kode lebih kompleks. Jika Anda membuat pemahaman daftar bersarang, berhati-hatilah. Kualitas kode mungkin menurun karena ekspresi yang bertele-tele dan tidak dapat dibaca. Pastikan untuk hanya melakukan pemahaman daftar jika itu meningkatkan kualitas kode

for i in range(1, 11):
    for j in range(1, 11):
        print(i * j, end=" ")
    print()
_3

Keluaran

for i in range(1, 11):
    for j in range(1, 11):
        print(i * j, end=" ")
    print()
_4

Bagaimana Mengubah Nested For Loop menjadi Pemahaman Daftar?

Di bagian sebelumnya, Anda melihat contoh membuat pemahaman daftar bersarang dari perulangan for bersarang. Namun dari contoh di atas, tidak jelas bagaimana sebenarnya Anda melakukannya

Inilah cetak biru untuk membuat pemahaman daftar bersarang dari loop for bersarang

for i in range(1, 11):
    for j in range(1, 11):
        print(i * j, end=" ")
    print()
_5

Urutan pemahaman mungkin membingungkan Anda karena loop luar terjadi di "bagian dalam" dari pemahaman dan loop dalam ada di "bagian luar". Selain itu, tidak banyak yang terjadi dalam konversi

Namun, jika Anda tidak terbiasa dengan pemahaman daftar, Anda harus membaca artikel terpisah tentang topik tersebut

Sebagai contoh, inilah ilustrasi yang mengonversi perulangan for bersarang menjadi pemahaman daftar bersarang

Converting a nested loop into a nested list comprehension in Python

Ringkasan

Hari ini Anda belajar bagaimana loop bersarang bekerja di Python

Untuk dibawa pulang, loop bersarang mengacu pada loop di dalam loop. Bisa ada banyak loop dalam satu loop yang Anda inginkan

Perulangan bersarang biasanya praktis saat bekerja dengan data multidimensi, seperti daftar daftar, atau tabel data

Sebagai singkatan, Anda dapat mengompresi loop for bersarang ke pemahaman daftar bersarang. Berhati-hatilah saat melakukan ini agar kode tidak sulit dibaca

Bagaimana cara kerja break dalam loop bersarang?

Istirahat adalah kata kunci dalam C yang digunakan untuk mengeluarkan kontrol program dari perulangan. Pernyataan break digunakan di dalam loop atau pernyataan switch. Pernyataan break memecah loop satu per satu, i. e. , dalam kasus loop bersarang, itu memutus loop dalam terlebih dahulu dan kemudian melanjutkan ke loop luar .

Apakah break menghentikan semua loop bersarang?

BREAK hanya akan keluar dari lingkaran yang disebutnya . Sebagai solusinya, Anda dapat menggunakan variabel flag bersama dengan BREAK untuk keluar dari loop bersarang.

Bagaimana Anda memecahkan dua loop bersarang Python?

Cara lain untuk memecahkan beberapa perulangan adalah dengan menginisialisasi variabel flag dengan nilai False . Variabel dapat diberi nilai True sesaat sebelum keluar dari loop dalam. Loop luar harus berisi blok if setelah loop dalam.

Apakah break di Python menghentikan semua loop?

Pernyataan python break . The break statement is used to terminate the loop immediately when it is encountered.