Cara Meniru Do-While Loop dengan Python

Diterbitkan: 2022-08-31

Dalam 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?

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 adalah count < 0 . Namun, loop berjalan sekali meskipun kondisi loop awalnya False .
  • 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.

While vs Do-While: Gambaran Umum Perbedaannya

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 ke count < 5 .

Berikut adalah penjelasan visual tentang bagaimana eksekusi terjadi: bagaimana perulangan do-while bekerja dan memeriksa kondisi perulangan empat kali.

contoh-do-sementara-loop
 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.

while-loop-contoh
 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 atau False .
  • 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

lakukan-sementara-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:

  1. Ketika pengguna telah menebak nomornya
  2. 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.