Lompati ke konten utama
Modul 2 · Pelajaran 3 dari 47/36 dalam kursus~10 min
Pelajaran modul (3/4)

istirahat, lanjutkan dan lainnya dalam loop

Di dalam satu lingkaran (baik for dan while) Anda dapat mengubah aliran normal dengan tiga konstruksi:

  • break — segera keluar dari loop.
  • continue — melewati bagian tubuh lainnya dan melompat ke iterasi berikutnya.
  • else (pada loop) — dieksekusi ketika loop berakhir tanpa break.

break

Python
for n in [3, 7, 11, 4, 9]:
    if n % 2 == 0:
        primo_pari = n
        break
primo_pari  # 4

break menghentikan perulangan sesegera mungkin. Apa pun setelah break di badan iterasi saat ini TIDAK dijalankan.

continue

Python
risultati = []
for n in range(1, 11):
    if n % 2 == 0:
        continue   # skip evens
    risultati.append(n * n)
risultati  # [1, 9, 25, 49, 81]

Pikirkan continue sebagai "lanjutkan ke iterasi berikutnya". Ini digunakan untuk memfilter item tanpa menambahkan satu tingkat lekukan lagi.

else pada loop (idiom Python)

Keunikan Python: loop juga dapat memiliki else, dieksekusi hanya jika loop dihentikan secara alami (tanpa break). Ini sempurna untuk pencarian:

Python
target = 7
for n in [2, 4, 6, 8]:
    if n == target:
        trovato = True
        break
else:
    trovato = False
trovato  # False

Bacalah sebagai: "untuk setiap n dalam daftar; jika Anda mengambil cabang break, lewati yang lain; jika tidak, jalankan yang lain".

Loop bersarang: break keluar hanya yang paling dalam

Python
for x in range(3):
    for y in range(3):
        if x == y == 1:
            break
        print(x, y)

break hanya keluar dari for y, bukan for x. Untuk keluar dari keduanya Anda harus menggunakan a bendera atau fungsi + return.

Konstruksi loop...else yang tidak biasa

Dalam Python, loop for dan while dapat menampilkan klausa else opsional. Blok else dieksekusi hanya jika loop selesai secara normal (yaitu tanpa menemui pernyataan break). Ini sangat membantu untuk algoritma pencarian (misalnya "mencari suatu elemen: jika ditemukan, hancurkan; jika tidak, laporkan bahwa elemen tersebut tidak ditemukan").

Cobalah sendiri

Latihan#python.m2.l3.e1
Upaya: 0Memuat…

Diberikan daftar `angka = [10, 15, 20, 25, 30, 35]`, carilah bilangan pertama yang habis dibagi 7 dan tetapkan ke `hasil`. Jika tidak ada, tetapkan -1.

Memuat editor…
Tunjukkan petunjuk

35 adalah angka pertama (dan satu-satunya) yang habis dibagi 7 dalam daftar.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#python.m2.l3.e2
Upaya: 0Memuat…

Buat daftar `angka_ganjil` dengan angka ganjil dari 1 hingga 20 (inklusif) menggunakan perulangan for pada rentang (1, 21) dan terus lewati angka genap.

Memuat editor…
Tunjukkan petunjuk

Jika n genap, lanjutkan; jika tidak, tambahkan.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#python.m2.l3.e3
Upaya: 0Memuat…

Given the list `numbers = [7, 11, 14, 21, 25]`, write a `for` loop to find the first number that is divisible by 7 and also strictly greater than 10. When you find it, store it in `found` and exit the loop using `break`. Finally, evaluate `found`.

Memuat editor…
Tunjukkan petunjuk

Inside the loop, check if num % 7 == 0 and num > 10:, assign it to found and trigger break.

Solusi tersedia setelah 3 upaya