Cara Meniru Do-While Loop dengan Python
Diterbitkan: 2022-08-31Dalam tutorial ini, Anda akan belajar cara mengemulasi perulangan do-while di Python .
Dalam bahasa pemrograman apa pun, loop membantu Anda melakukan tindakan tertentu berulang kali, tergantung pada kondisi looping. Python mendukung konstruksi while dan for loop tetapi tidak secara native mendukung loop do-while .
Namun, Anda dapat meniru perulangan do-while dengan memahami cara kerjanya— menggunakan perulangan yang ada dan pernyataan kontrol perulangan dengan Python.
Anda akan belajar bagaimana melakukan ini selama beberapa menit berikutnya. Mari kita mulai!
Apa itu Konstruk Do-While Loop?

Jika Anda telah memprogram dalam bahasa seperti C atau C++, Anda mungkin akan menemukan konstruksi loop do-while.
Dalam perulangan do-while, himpunan pernyataan di badan perulangan—di dalam blok yang dibatasi oleh kurung kurawal—dieksekusi terlebih dahulu dan kemudian kondisi perulangan diperiksa.
Anda dapat menjalankan contoh C berikut di kompiler C online Geekflare—langsung dari browser Anda.
Perhatikan cuplikan kode berikut:
//do_while_example1 #include <stdio.h> int main() { int count = 1; printf("Do-While loop: \n"); do{ printf("Loop runs..."); }while(count<0); return 0; }
Berikut outputnya.
Output Do-While loop: Loop runs...
Dalam contoh di atas:
- Nilai
count
adalah 1, dan kondisi perulangan adalahcount < 0
. Namun, loop berjalan sekali meskipun kondisi loop awalnyaFalse
. - Ini berbeda dengan perulangan while yang hanya dijalankan jika kondisi perulangan bernilai
True
sejak awal.
//while_example1 #include <stdio.h> int main() { int count = 1; printf("While loop: \n"); while(count<0){ printf("Loop runs..."); } return 0; }
Seperti yang disebutkan, kondisi perulangan, count < 0
adalah False
pada awalnya variabel count
diinisialisasi ke 1. Jadi setelah mengkompilasi dan menjalankan kode di atas, kita melihat bahwa pernyataan di badan perulangan while tidak dieksekusi.
Output While loop: //loop body does not run!
While vs. Do-While: Gambaran Umum Perbedaannya
Mari kita lihat lebih dekat perbedaan antara while dan do-while loop.

Pertimbangkan contoh ini:
//do_while_example2 #include <stdio.h> int main() { int count = 1; printf("Do-while loop: \n"); do{ printf("%d\n",count); count++; }while(count<5); return 0; }
Dalam sel kode di atas:
- Variabel
count
diinisialisasi ke 1. - Kami menggunakan perulangan do while.
- Variabel
count
bertambah 1 selama setiap melewati loop, dan kondisi loop diatur kecount < 5
.
Berikut adalah penjelasan visual tentang bagaimana eksekusi terjadi: bagaimana perulangan do-while bekerja dan memeriksa kondisi perulangan empat kali.

Output Do-while loop: 1 2 3 4
Jika Anda menggunakan loop sementara sebagai gantinya, inilah yang akan kita miliki.
//while_example2 #include <stdio.h> int main() { int count = 1; printf("While loop: \n"); while(count<5){ printf("%d\n",count); count++; }; return 0; }
Gambar di bawah menjelaskan eksekusi while loop; dalam contoh ini, perulangan while memeriksa kondisi perulangan lima kali.

Output While loop: 1 2 3 4
Meskipun output untuk loop while dan do-while di atas adalah identik, ada beberapa perbedaan yang tidak kentara.
Dalam perulangan while, pemeriksaan kondisi didahulukan, diikuti oleh badan perulangan. Jadi jika Anda ingin loop dijalankan K kali, harus ada K run yang tepat di mana kondisi loop adalah True
. Pada nomor iterasi K+1 , kondisinya menjadi False
, dan kontrol keluar dari loop.
Di sisi lain, jika Anda menggunakan perulangan do-while: kondisi perulangan diperiksa untuk waktu ke-K hanya setelah K melewati perulangan.
Jadi mengapa peningkatan marjinal ini bermanfaat?
Misalkan kondisi perulangan mahal secara komputasi: misalnya, melibatkan panggilan ke fungsi rekursif, operasi matematika yang kompleks, dan sebagainya.
Dalam kasus seperti itu, untuk pengulangan K dari badan perulangan, akan bermanfaat untuk menggunakan perulangan do-while sebagai gantinya.
Ringkasan While vs. Do-While

Mari kita tabulasi perbedaan utama yang telah kita pelajari.
Sementara Loop | Perulangan Do-While |
Periksa kondisi perulangan: Sebelum eksekusi badan perulangan | Periksa kondisi perulangan: Setelah eksekusi badan perulangan |
Jika kondisi awalnya False , badan perulangan tidak dieksekusi. | Jika kondisi awalnya False , badan loop dieksekusi tepat satu kali . |
Kondisi perulangan diperiksa K kali untuk K melewati loop. | Kondisi looping diperiksa K-1 kali untuk K melewati loop. |
Kapan menggunakan while loop? – Loop harus berjalan selama kondisinya Benar – Untuk loop yang dikendalikan entri – Ketika kondisi perulangan tidak mahal secara komputasi | Kapan menggunakan perulangan do-while? – Loop harus dijalankan setidaknya sekali untuk kondisi awal False looping – Untuk loop yang dikontrol keluar – Ketika kondisi perulangan mahal secara komputasi |
Meniru Perilaku Do-While Loop dengan Python
Dari bagian sebelumnya, kita memiliki dua kondisi berikut untuk meniru perulangan do-while:

- Pernyataan dalam badan perulangan harus dijalankan setidaknya sekali —terlepas dari apakah kondisi perulangan adalah
True
atauFalse
. - Kondisi harus diperiksa setelah mengeksekusi pernyataan di badan loop. Jika kondisinya
False
, kontrol harus keluar dari loop: exit control.
Pernyataan Infinite While Loop dan Break di Python

Anda dapat mendefinisikan loop while tak terbatas dengan Python, seperti yang ditunjukkan di bawah ini.
while True: pass # Instead of True, you can have any condition that is always True while always-True-condition: pass
Pernyataan break
dapat digunakan untuk keluar dari badan perulangan dan mentransfer kontrol ke pernyataan pertama di luar badan perulangan.
while <condition>: if <some-condition>: break
Dalam contoh perulangan do-while pertama di C, syarat untuk melanjutkan perulangan adalah count < 0
. Jadi syarat untuk keluar dari loop adalah nilai hitungan nol atau lebih besar dari nol, ( count >= 0
).
Berikut adalah emulasi dari loop do-while dengan Python:
count = 1 while True: print("Loop runs...") if(count >= 0): break
Contoh Perulangan Do-While Python

Kami akan meninjau kembali contoh dari bagian sebelumnya dan menulis ulang dengan Python dengan meniru loop do while.
#1 . Mari kita lihat kembali contohnya: mencetak nilai variabel count
saat count
kurang dari lima.
Kita tahu bagaimana mendefinisikan infinite loop sehingga badan loop dieksekusi setidaknya sekali.
Perulangan harus berlanjut selama hitungannya kurang dari lima. Oleh karena itu, ketika hitungan mencapai lima, kita harus keluar dari loop. Jadi count == 5
adalah kondisi kontrol keluar.
Menyatukannya, kami memiliki:
count = 1 while True: print(f"Count is {count}") count += 1 if count==5: break
Output Count is 1 Count is 2 Count is 3 Count is 4
#2 . Kami juga dapat menulis ulang permainan menebak angka sebagai konstruksi do-while Python.
Dalam permainan tebak angka, kami memvalidasi tebakan pengguna terhadap nomor rahasia yang telah ditentukan sebelumnya. Pengguna harus menebak nomor rahasia dalam sejumlah upaya maksimum yang diizinkan, katakanlah, max_guesses
.
Kode harus meminta pengguna untuk memasukkan, terlepas dari apakah tebakan mereka benar atau salah. Kita dapat melakukan ini menggunakan loop while tak terbatas.
Jadi kapan kita harus keluar dari lingkaran?
Kontrol harus keluar dari loop ketika salah satu dari berikut ini terjadi:
- Ketika pengguna telah menebak nomornya
- Ketika pengguna belum menebak angka, tetapi telah kehabisan jumlah tebakan yang tersedia. Jumlah tebakan yang salah oleh pengguna =
max_guesses
.
Sel kode di bawah ini menunjukkan bagaimana kita bisa melakukannya.
import random low, high = 5,50 secret_number = random.choice(range(low,high)) max_guesses = 10 num_guesses = 0 while True: guess = int(input("\nGuess a number:")) num_guesses += 1 conditions = [num_guesses==max_guesses,guess==secret_number] if any(conditions): break
Alih-alih keluar dari loop, kita dapat menambahkan pernyataan print()
penjelasan ketika kita menemukan setiap kondisi di atas dan kemudian keluar dari loop.
import random low, high = 5,50 secret_number = random.choice(range(low,high)) print(secret_number) max_guesses = 10 num_guesses = 0 while True: guess = int(input("\nGuess a number:")) num_guesses += 1 if guess==secret_number: print("Congrats, you guessed it right!") break if num_guesses==max_guesses: print("Sorry, you have no more guesses left!") break
Dua contoh output ditunjukkan di bawah ini.
Dalam contoh keluaran ini, pernyataan break keluar dari loop ketika pengguna menebak nomor rahasia dengan benar.
# Sample output when secret_number = 43 and user gets it right! Guess a number:4 Guess a number:3 Guess a number:43 Congrats, you guessed it right!
Berikut ini contoh keluaran lain ketika pengguna mencapai jumlah tebakan maksimum yang tersedia tetapi gagal menebak nomor rahasia dengan benar.
# Sample output when secret_number = 33 and user fails to guess it right! Guess a number:3 Guess a number:15 Guess a number:21 Guess a number:50 Guess a number:17 Guess a number:6 Guess a number:18 Guess a number:5 Guess a number:12 Guess a number:43 Sorry, you have no more guesses left!
Kesimpulan
Saya harap tutorial ini membantu Anda memahami cara meniru loop do-while dengan Python.
Berikut adalah takeaways utama:
- Gunakan loop tak terbatas untuk memastikan badan loop berjalan setidaknya sekali. Itu bisa berupa infinite loop sepele seperti while True, atau bisa while <condition> , sehingga kondisinya selalu True.
- Periksa kondisi keluar di dalam loop dan gunakan pernyataan break untuk keluar dari loop dalam kondisi tertentu.
Selanjutnya, pelajari cara menggunakan for loop dan fungsi enumerate() dengan Python.