Latihan - Membuat perulangan do dan while
- 10 menit
Pada dasarnya, do-while dan while adalah jenis pernyataan iterasi lainnya yang memungkinkan Anda untuk melakukan iterasi melalui blok kode dan dengan begitu mengubah alur eksekusi kode Anda. Namun, setelah kita memeriksa cara kerja masing-masing, kita dapat mengidentifikasi nuansa setiap pernyataan iterasi dengan lebih baik dan kapan menggunakannya.
Apa itu pernyataan do-while?
Pernyataan do-while menjalankan pernyataan atau blok pernyataan selama ekspresi Boolean yang ditentukan bernilai benar. Karena ekspresi tersebut dievaluasi setelah setiap eksekusi perulangan, perulangan do-while dijalankan satu atau beberapa kali.
do
{
// This code executes at least one time
} while (true);
Alur eksekusi dimulai di dalam kurung kurawal. Kode menjalankan setidaknya satu kali, lalu ekspresi Boolean di while samping kata kunci dievaluasi. Jika ekspresi Boolean mengembalikan true, blok kode dijalankan lagi.
Dengan pengkodean keras ekspresi Boolean ke true, kami telah membuat perulangan tak terbatas --perulangan yang tidak akan pernah berakhir, setidaknya, tidak seperti yang saat ini ditulis. Kita akan membutuhkan cara untuk keluar dari perulangan di dalam blok kode. Nanti kita akan membahas kriteria keluar dari do-while.
Oke, sekarang mari kita siapkan lingkungan pengkodean kita dan mulai pemeriksaan sampel kode yang mengimplementasikan pernyataan do-while .
Menyiapkan lingkungan pengodian Anda
Modul ini mencakup aktivitas langsung yang memandu Anda melalui proses membangun dan menjalankan kode demonstrasi. Kami mendorong Anda untuk menyelesaikan aktivitas ini menggunakan Visual Studio Code sebagai lingkungan pengembangan Anda. Menggunakan Visual Studio Code untuk aktivitas ini akan membantu Anda menjadi lebih nyaman menulis dan menjalankan kode di lingkungan pengembang yang digunakan oleh para profesional di seluruh dunia.
Buka Visual Studio Code.
Anda dapat menggunakan menu Mulai Windows (atau sumber daya yang setara untuk OS lain) untuk membuka Visual Studio Code.
Pada menu File Visual Studio Code, pilih Buka Folder.
Dalam dialog Buka Folder , navigasikan ke folder Windows Desktop.
Jika Anda memiliki lokasi folder yang berbeda di mana Anda menyimpan proyek kode, Anda dapat menggunakan lokasi folder tersebut sebagai gantinya. Untuk pelatihan ini, yang penting adalah memiliki lokasi yang mudah ditemukan dan diingat.
Dalam dialog Buka Folder , pilih Pilih Folder.
Jika Anda melihat dialog keamanan yang menanyakan apakah Anda mempercayai penulis, pilih Ya.
Pada menu Terminal Visual Studio Code, pilih Terminal Baru.
Perhatikan bahwa perintah di panel Terminal menampilkan jalur folder untuk folder saat ini. Contohnya:
C:\Users\someuser\Desktop>Nota
Jika Anda bekerja pada PC Anda sendiri daripada di kotak pasir atau lingkungan yang dihosting dan Anda telah menyelesaikan modul Microsoft Learn lainnya dalam seri C# ini, Anda mungkin telah membuat folder proyek untuk sampel kode. Jika demikian, Anda dapat melewati langkah berikutnya, yang digunakan untuk membuat aplikasi konsol di folder TestProject.
Pada prompt perintah Terminal, untuk membuat aplikasi konsol baru di folder tertentu, masukkan perintah berikut:
dotnet new console -o ./CsharpProjects/TestProjectPerintah .NET CLI ini menggunakan templat program .NET untuk membuat proyek aplikasi konsol C# baru di lokasi folder yang ditentukan. Perintah membuat folder CsharpProjects dan TestProject untuk Anda, dan menggunakan TestProject sebagai nama file Anda
.csproj.Jika pesan ditampilkan memberi tahu Anda bahwa file sudah ada, lanjutkan dengan langkah berikutnya. Anda akan menggunakan kembali file proyek yang ada.
Dalam tampilan EXPLORER, perluas folder CsharpProjects .
Anda akan melihat folder TestProject dan dua file, file program C# bernama Program.cs dan file proyek C# bernama TestProject.csproj.
Pada menu File Visual Studio Code, pilih Buka Folder.
Dalam dialog Buka Folder , pilih folder CsharpProjects , lalu pilih Pilih Folder.
Dalam tampilan EXPLORER, perluas folder TestProject, lalu pilih Program.cs.
Hapus baris kode yang ada.
Anda akan menggunakan proyek konsol C# ini untuk membuat, membangun, dan menjalankan sampel kode selama modul ini.
Tutup panel Terminal.
Tulis pernyataan do-while untuk berhenti saat angka acak tertentu dihasilkan
Mari kita tulis kode yang akan terus menghasilkan angka acak antara 1 dan 10 sampai kita menghasilkan angka 7. Hanya perlu satu iterasi untuk mendapatkan 7, atau bisa memakan puluhan iterasi.
Pastikan Anda membuka Visual Studio Code dan menampilkan Program.cs di panel Editor.
Nota
Program.cs harus kosong. Jika tidak, pilih dan hapus semua baris kode.
Ketik kode berikut ke editor Visual Studio Code.
Random random = new Random(); int current = 0; do { current = random.Next(1, 11); Console.WriteLine(current); } while (current != 7);Pada menu File Visual Studio Code, pilih Simpan.
File Program.cs harus disimpan sebelum membangun atau menjalankan kode.
Di panel EXPLORER, untuk membuka Terminal di lokasi folder TestProject Anda, klik kanan TestProject, lalu pilih Buka di Terminal Terintegrasi.
Panel Terminal akan terbuka. Terminal harus menyertakan perintah yang menunjukkan bahwa Terminal terbuka untuk lokasi folder TestProject Anda.
Pada perintah Terminal, untuk menjalankan kode Anda, ketik dotnet run lalu tekan Enter.
Nota
Jika Anda melihat pesan yang mengatakan "Tidak dapat menemukan proyek untuk dijalankan", pastikan bahwa prompt perintah Terminal menampilkan lokasi folder TestProject yang diharapkan. Misalnya:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Tinjau output Anda.
Karena angka yang dihasilkan acak, hasil Anda akan berbeda. Namun, nilai
7akan menjadi angka terakhir yang dicetak karena ekspresi Boolean tersebut akan bernilaifalse, dan saat 7 dihasilkan, alur eksekusi akan keluar dari blok kode.2 5 8 2 7Luangkan waktu semenit untuk meninjau kode Anda.
Pembelajaran utama untuk tugas pertama ini adalah bahwa blok kode perulangan
do-whileakan dijalankan setidaknya sekali. Ini bisa mengulangi sejumlah besar kali, dan tidak mungkin kita tahu sebelumnya berapa banyak iterasi yang akan ada.Penting juga untuk diperhatikan bahwa kode di dalam blok kode memengaruhi apakah akan terus melakukan iterasi melalui blok kode atau tidak. Blok kode yang memengaruhi kriteria keluar adalah alasan utama untuk memilih
do-whilepernyataan atauwhiledaripada salah satu pernyataan iterasi lainnya. Baikforeachmaupunforbergantung pada faktor-faktor yang berada di luar blok kode untuk menentukan jumlah iterasi blok kode.
Tulis pernyataan "while" yang berulang hanya ketika angka acak lebih besar dari nilai tertentu.
Sekarang, mari kita lihat pernyataan while.
Gunakan Editor Visual Studio Code untuk memperbarui kode Anda sebagai berikut:
Random random = new Random(); int current = random.Next(1, 11); /* do { current = random.Next(1, 11); Console.WriteLine(current); } while (current != 7); */ while (current >= 3) { Console.WriteLine(current); current = random.Next(1, 11); } Console.WriteLine($"Last number: {current}");Nota
Dalam hal ini, kami memposisikan
whilekata kunci dan ekspresi Boolean sebelum blok kode. Ini mengubah tujuan kode dan bertindak sebagai "gerbang" untuk hanya memungkinkan alur eksekusi memasuki jika ekspresi Boolean mengevaluasi ke benar.Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Tinjau nilai output yang tercantum.
Karena angkanya acak, sehingga kode Anda akan menghasilkan urutan yang berbeda.
9 7 5 Last number: 1Luangkan waktu semenit untuk meninjau kode Anda.
Di kode teratas, kami menggunakan
randomuntuk menginisialisasi variabel kamiintbernamacurrent. Baris kode aktif kami berikutnya adalah pernyataan kamiwhile.Pernyataan kami
whileakan melakukan iterasi berdasarkan ekspresi Boolean(current >= 3). Kami tidak tahu nilai apa yang akan ditetapkan kecurrent, tetapi ada kemungkinan yang memengaruhi perulangan kamiwhile:- Jika
currentdiinisialisasi ke nilai yang lebih besar dari atau sama dengan3, maka ekspresi Boolean akan mengembalikantrue, dan alur eksekusi akan memasuki blok kode. Di dalam blok kode, hal pertama yang kita lakukan adalah menulis nilaicurrentke konsol. Selanjutnya, masih di dalam blok kode, kami memperbarui nilaicurrentdengan nilai acak baru. Pada titik ini, kontrol kembali ke bagian awal pernyataanwhileyang mengevaluasi ekspresi Boolean. Proses ini berlanjut sampai ekspresi Boolean bernilaifalsedan alur eksekusi terputus dari blok kode. - Jika
currentdiinisialisasi (di bagian atas kode kami) ke nilai kurang dari3, maka ekspresi Boolean akan mengembalikanfalse, dan blok kode tidak akan pernah dijalankan.
Baris kode akhir menulis nilai
currentke konsol. Kode ini menjalankan apakah blok kode iterasi dijalankan atau tidak, dan merupakan kesempatan kami untuk menulis nilaicurrentakhir ke konsol.- Jika
Gunakan pernyataan lanjutan untuk melangkah langsung ke ekspresi Boolean
Dalam kasus tertentu, kami ingin menghentikan eksekusi sisa kode dalam blok program dan melanjutkan ke iterasi berikutnya. Kita dapat melakukannya menggunakan pernyataan .continue
Gunakan Editor Visual Studio Code untuk memperbarui kode Anda sebagai berikut:
Random random = new Random(); int current = random.Next(1, 11); do { current = random.Next(1, 11); if (current >= 8) continue; Console.WriteLine(current); } while (current != 7); /* while (current >= 3) { Console.WriteLine(current); current = random.Next(1, 11); } Console.WriteLine($"Last number: {current}"); */Luangkan waktu semenit untuk meninjau kode Anda.
Perhatikan bahwa kami telah beralih kembali ke
do-while.do-whileMemastikan bahwa perulangan akan berulang setidaknya sekali.Hal pertama yang kita lakukan di dalam blok kode adalah menetapkan nilai acak baru ke
current. Selanjutnya, kita memeriksa untuk melihat apakahcurrentlebih besar dari atau sama dengan8. Jika ekspresi ini mengembalikantrue,continuekata kunci akan mentransfer kontrol ke akhir blok kode danwhileakan mengevaluasi(current != 7). Jadi, perulangan akan terus berulang selama nilainyacurrenttidak sama dengan7.Kunci untuk langkah latihan ini adalah baris kode yang
continueberisi kata kunci:if (current >= 8) continue;Karena kode kami yang menulis nilai
currentke konsol terletak setelahif (current >= 8) continue;, kode kami memastikan bahwa nilaicurrentyang lebih besar dari atau sama dengan8tidak akan pernah ditulis ke jendela output.Mari kita coba.
Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Tinjau nilai output yang tercantum.
5 1 6 7Anda mungkin akan melihat hasil yang berbeda dari apa yang ditampilkan di bawah ini. Namun, Anda tidak akan melihat nilai
8apa pun atau lebih besar di jendela output sebelum eksekusi kode berakhir dengan nilai7.Pertimbangkan perbedaan antara
continuepernyataan danbreak.Seperti yang Anda lihat di langkah terakhir ini,
continuepernyataan mentransfer eksekusi ke akhir iterasi saat ini. Perilaku ini berbeda dengan perilaku yang kita lihat dengan pernyataanbreaktersebut. Pernyataanbreakmengakhiri iterasi (atauswitch) dan mentransfer kontrol ke pernyataan yang mengikuti pernyataan yang diakhiri. Jika tidak ada pernyataan setelah pernyataan yang dihentikan, kontrol akan ditransfer ke akhir file atau metode.
Ringkasan
Ada beberapa ide penting yang harus Anda ambil dari unit ini:
- Pernyataan ini
do-whileberulang melalui blok kode setidaknya sekali, dan mungkin terus melakukan iterasi berdasarkan ekspresi Boolean. Evaluasi ekspresi Boolean biasanya tergantung pada beberapa nilai yang dihasilkan atau diambil di dalam blok kode. - Pernyataan mengevaluasi ekspresi Boolean
whileterlebih dahulu, dan terus melakukan iterasi melalui blok kode selama ekspresi Boolean bernilaitrue. - Kata
continuekunci untuk langsung menuju ekspresi Boolean.