For Else Loop

Salah satu hal baru yang dikenalkan Python dalam pemrograman terstruktur anti GOTO ialah FOR LOOP dengan klausa ELSE, sebagai pengembangan dari for-next loop klasik  dan blok percabangan if-then-else biasa. Berikut contoh penggunaan for-else loop dan alternatifnya yang menggunakan jagoan-jagoan Python lainnya, fungsi any, iterable, walrus operator.

#for_else_loop
for n in range(2, 10):
    for x in range(2,n):
        if n%x == 0:
            print(f'{n} sama dengan {x} * {n//x}')
            break
    else:
        print(f"{n} adalah bilangan prima")

#if any, assignment expression, iterable
for n in range(2,10):
    if any( n%(f:=x) == 0 for x in range(2,n)):
        print(f'{n} sama dengan {f}*{n//f}')
        continue
    else:
        print(f'{n} adalah bilangan prima')

Klausa else dalam for-else loop dapat dibaca sebagai bagian no-break, yaitu bagian yang tidak terkena eksekusi break, karena semua item dalam for-loop tidak ada yang memenuhi percabangan if.

Cara alternatifnya menurut saya lebih bersifat deklaratif, natural, memisahkan mana yang utama mana yang sekunder; daripada cara pertama yang prosedural.


Baik, sekian dulu, sampai jumpa lain kali.

Salam,




Comments