Latihan - Membuat dan mengonfigurasi untuk perulangan iterasi
- 14 menit
Di permukaan, for pernyataan adalah pernyataan iterasi lain yang memungkinkan Anda untuk melakukan iterasi melalui blok kode dan dengan demikian 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 pernyataan for?
Pernyataan ini for mengiterasi melalui blok kode sejumlah kali tertentu. Tingkat kontrol ini membuat pernyataan unik for di antara pernyataan iterasi lainnya. Pernyataan foreach menjelajahi blok kode sekali untuk setiap item dalam urutan data seperti array atau koleksi. Pernyataan ini while berulang melalui blok kode sampai kondisi terpenuhi.
Selain itu, pernyataan tersebut for memberi Anda lebih banyak kontrol atas proses iterasi dengan mengekspos kondisi perulangan.
Dalam latihan ini, Anda akan menggunakan for pernyataan, mempelajari cara mengontrol pra-kondisi iterasi, kondisi penyelesaian, pola iterasinya, dan banyak lagi. Selain itu, Anda akan mempelajari kasus penggunaan umum untuk pernyataan tersebut for .
Oke, sekarang mari kita siapkan lingkungan pengkodean kita dan mulai pemeriksaan sampel kode yang mengimplementasikan pernyataan for .
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.
Panel Terminal tutup.
Menulis dasar untuk pernyataan
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.
for (int i = 0; i < 10; i++) { Console.WriteLine(i); }Kode ini menyajikan pernyataan sederhana
foryang mengulang melalui blok kodenya 10 kali, mencetak nilai saat ini darii.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>Anda akan menemukan keluaran berikut.
0 1 2 3 4 5 6 7 8 9Luangkan waktu satu menit untuk mengidentifikasi enam bagian
forpernyataan.Pernyataan ini
formencakup enam bagian berikut:- Kata kunci
for. - Sekumpulan tanda kurung yang menentukan kondisi perulangan
for. Tanda kurung berisi tiga bagian yang berbeda, yang dipisahkan oleh pemutus pernyataan, yaitu titik koma. - Bagian pertama menentukan dan menginisialisasi variabel iterator. Dalam contoh ini:
int i = 0. Bagian ini disebut sebagai penginisialisasi. - Bagian kedua mendefinisikan kondisi penyelesaian. Dalam contoh ini:
i < 10. Dengan kata lain, runtime akan terus melakukan iterasi pada kode di blok di bawah pernyataanforselamaikurang dari10. Ketikaimenjadi sama dengan10, runtime berhenti menjalankan blok pernyataan kodefor. Dokumen merujuk ke bagian ini sebagai kondisi. - Bagian ketiga mendefinisikan tindakan yang harus diambil setelah setiap perulangan. Dalam hal ini, setelah setiap perulangan,
i++akan menaikkan nilai sebesari1. Dokumentasi mengacu pada bagian ini sebagai iterator. - Terakhir, blok kode. Blok kode berisi kode yang akan dijalankan untuk setiap iterasi. Perhatikan bahwa nilai
idirujuk di dalam blok kode. Dokumen merujuk ke bagian ini sebagai isinya.
Mengingat aturan kami untuk penamaan variabel, Anda mungkin bertanya-tanya apakah
inama yang valid untuk variabel yang menyimpan perulangan saat ini. Dalam hal ini,idianggap oleh sebagian besar valid. Pilihan populer lainnya adalahxdancounter. Namajini juga digunakan dalam situasi tersebut ketika Anda memiliki pernyataan luarforyang menggunakani, dan perlu membuat variabel iterasi untuk pernyataan dalamfor.Nota
Ketiga bagian (inisialisasi, kondisi, dan iterator) bersifat opsional. Namun, dalam praktiknya, biasanya ketiga bagian digunakan.
- Kata kunci
Mengubah kondisi iterasi
Seperti yang kami sebutkan pada awalnya, for pernyataan memiliki dua kualitas unik di antara pernyataan iterasi.
- Pernyataan
forharus digunakan ketika Anda mengetahui berapa kali Anda perlu melakukan iterasi melalui blok kode sebelumnya. - Pernyataan ini
formemungkinkan Anda mengontrol cara setiap iterasi ditangani.
Bagaimana jika kita perlu melakukan iterasi melalui blok kode, tetapi ingin menghitung mundur alih-alih menghitung naik?
Gunakan Editor Visual Studio Code untuk memperbarui kode Anda sebagai berikut:
for (int i = 10; i >= 0; i--) { Console.WriteLine(i); }Luangkan waktu semenit untuk meninjau kode yang diperbarui.
Dengan mengubah tiga bagian
forpernyataan, kami mengubah perilakunya.- Kami menginisialisasi variabel iterasi ke 10.
- Kami mengubah kondisi penyelesaian untuk keluar dari
forpernyataan ketikaikurang dari0. - Kami mengubah pola iterator untuk mengurangi
1dariisetiap kali kami menyelesaikan iterasi.
Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Perhatikan bahwa output telah berubah.
Saat menjalankan kode, Anda akan melihat output berikut.
10 9 8 7 6 5 4 3 2 1 0
Bereksperimen dengan pola iterator
Bagaimana jika kita ingin melewati nilai tertentu dalam variabel iterator?
Gunakan Editor Visual Studio Code untuk memperbarui kode Anda sebagai berikut:
for (int i = 0; i < 10; i += 3) { Console.WriteLine(i); }Luangkan waktu semenit untuk meninjau kode yang diperbarui.
Alih-alih menaikkan atau mengurangi nilai variabel iterator dengan
1, kita gunakani += 3untuk melewati dua nilai setelah setiap perulangan.Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Perhatikan bagaimana output telah berubah.
Saat menjalankan kode, Anda akan melihat output berikut.
0 3 6 9Diakuinya, Anda tidak akan sering melakukan hal semacam ini, tetapi mudah-mudahan Anda dapat menghargai bahwa Anda memiliki tingkat kontrol yang halus atas iterasi jika Anda pernah membutuhkannya.
Gunakan kata kunci pemisah untuk memutuskan pernyataan iterasi
Bagaimana jika kita perlu keluar dari pernyataan iterasi sebelum waktunya berdasarkan beberapa kondisi? Kita dapat menggunakan break kata kunci.
Gunakan Editor Visual Studio Code untuk memperbarui kode Anda sebagai berikut:
for (int i = 0; i < 10; i++) { Console.WriteLine(i); if (i == 7) break; }Luangkan waktu semenit untuk meninjau penggunaan
breakkata kunci dalam kode yang diperbarui.Kami melihat kata kunci
breakpertama kali dalam modul "Mencabangkan alur kode menggunakan konstruksi switch-case di C#". Ternyata, kita dapat menggunakanbreakkata kunci untuk keluar dari pernyataan iterasi juga.Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Perhatikan bagaimana output telah berubah.
Saat menjalankan kode, Anda akan melihat output berikut.
0 1 2 3 4 5 6 7
Mengiterasikan setiap elemen dalam sebuah array
Penggunaan umum untuk for pernyataan ini adalah melakukan iterasi melalui array elemen, terutama jika Anda memerlukan kontrol atas cara perulangan terjadi. Saat foreach melakukan iterasi pada setiap elemen array, pernyataan for dapat disesuaikan untuk memberikan lebih banyak kustomisasi.
Gunakan Editor Visual Studio Code untuk memperbarui kode Anda sebagai berikut:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = names.Length - 1; i >= 0; i--) { Console.WriteLine(names[i]); }Luangkan waktu semenit untuk meninjau kode yang diperbarui.
Pertama, perhatikan bahwa kami telah membuat instans array string bernama
namesyang berisi empat nama.Selanjutnya, perhatikan bahwa kita menggunakan
Array.Lengthproperti untuk mendapatkan jumlah elemen dalam array, dan bahwa kita menggunakan nilai ini untuk menginisialisasi variabel iterator kita (int i = names.Length - 1). Kami mengurangi 1 dari nilai karena angka indeks untuk elemen array berbasis nol (angka indeks dari empat elemen adalah 0-3).Akhirnya, perhatikan bahwa kita telah memilih untuk mengiterasi melalui array secara mundur—sesuatu yang tidak dapat kita lakukan dengan pernyataan
foreach. Kami menggunakan nilai variabel iterasi di dalam blok kode untuk menentukan jumlah indeks elemen array (names[i]).Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Perhatikan bahwa elemen array tercantum dalam urutan terbalik (seperti yang kita inginkan).
Saat menjalankan kode, Anda akan melihat output berikut.
Michael David Eddie AlexNota
Kita bisa melakukan iterasi ke depan melalui elemen array dengan membuat
forpernyataan sebagai berikut:for (int i = 0; i < names.Length; i++).
Periksa batasan perintah foreach
Bagaimana jika Anda ingin memperbarui nilai dalam array selama perulangan foreach ?
Gunakan Editor Visual Studio Code untuk memperbarui kode Anda sebagai berikut:
string[] names = { "Alex", "Eddie", "David", "Michael" }; foreach (var name in names) { // Can't do this: if (name == "David") name = "Sammy"; }Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Perhatikan pesan kesalahan yang ditampilkan.
Jika Anda mencoba mengkompilasi dan menjalankan kode ini, Anda akan melihat pengecualian.
Cannot assign to name because it is a 'foreach iteration variable'Dengan kata lain, Anda tidak dapat menetapkan ulang nilai
namekarena itu adalah bagian dari implementasi dalam iterasiforeach.
Mengatasi batasan pernyataan foreach dengan menggunakan pernyataan for
Mari kita coba menggunakan for pernyataan untuk memodifikasi konten array di dalam blok kode iterasi.
Gunakan Editor Visual Studio Code untuk memperbarui kode Anda sebagai berikut:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = 0; i < names.Length; i++) if (names[i] == "David") names[i] = "Sammy"; foreach (var name in names) Console.WriteLine(name);Luangkan waktu semenit untuk meninjau kode yang diperbarui.
Perhatikan bahwa kami menghapus kurung kurawal dari blok kode yang hanya berisi satu baris kode. Revisi ini menggunakan teknik yang sama dengan yang kita bicarakan dalam modul "Kontrol cakupan variabel dan logika menggunakan blok kode di C#". Banyak pengembang merasa gaya ini sulit dibaca, sementara yang lain lebih suka gaya yang disingkat ini karena membantu mereka menulis dengan lebih tepat dan lebih ekspresif. Jika Anda merasa kode ini sulit dibaca, atau jika Anda tidak lebih suka gaya ini, yakinlah bahwa kurung kurawal selalu dapat digunakan di blok kode Anda. Jika mau, perbarui kode di panel Editor dengan kode berikut:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = 0; i < names.Length; i++) { if (names[i] == "David") { names[i] = "Sammy"; } } foreach (var name in names) { Console.WriteLine(name); }Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Perhatikan bahwa kode berjalan tanpa kesalahan dan menghasilkan output yang diinginkan.
Saat menjalankan kode, Anda akan melihat output berikut.
Alex Eddie Sammy MichaelKarena array bukan bagian langsung dari implementasi pernyataan iterasi, Anda dapat mengubah nilai di dalam array.
Ringkasan
Berikut adalah beberapa poin penting dari unit ini:
- Pernyataan
foriterasi memungkinkan Anda untuk melakukan iterasi melalui blok kode beberapa kali tertentu. - Pernyataan
foriterasi memungkinkan Anda mengontrol setiap aspek mekanisme iterasi dengan mengubah tiga kondisi di dalam tanda kurung: inisialisasi, kondisi, dan iterator. - Adalah umum untuk menggunakan
forpernyataan saat Anda perlu mengontrol bagaimana Anda ingin melakukan iterasi melalui setiap item dalam array. - Jika blok kode Anda hanya memiliki satu baris kode, Anda dapat menghilangkan kurung kurawal dan spasi kosong jika mau.