Latihan - Menerapkan pernyataan pengalihan
- 11 menit
Pernyataan switch adalah pernyataan pemilihan C# yang memberikan alternatif untuk if-elseif-else konstruksi percabangan. Pernyataan ini switch memberikan keuntungan daripada if-elseif-else konstruksi saat mengevaluasi satu nilai terhadap daftar nilai yang diketahui cocok.
Pertimbangkan skenario berikut:
- Anda sedang mengerjakan aplikasi yang terkait dengan nutrisi makanan. Bagian kode berurusan dengan buah-buahan.
- Kode Anda menyertakan variabel bernama
fruityang digunakan untuk menyimpan nama berbagai jenis buah. - Anda memiliki daftar 20 buah yang menjadi fokus aplikasi Anda.
- Anda ingin mencabangkan kode Anda berdasarkan nilai yang ditetapkan ke
fruit.
Dalam skenario ini, Anda dapat menggunakan switch pernyataan untuk membuat cabang terpisah untuk setiap jenis buah.
Bagaimana cara kerja pernyataan pengalihan?
Pernyataan switch memilih satu bagian kode untuk dijalankan dari daftar bagian switch yang memungkinkan.
Bagian sakelar yang dipilih ditentukan berdasarkan kecocokan pola dengan ekspresi pencocokan pernyataan.
Pertimbangkan sampel kode berikut yang menunjukkan struktur switch pernyataan dasar:
switch (fruit)
{
case "apple":
Console.WriteLine($"App will display information for apple.");
break;
case "banana":
Console.WriteLine($"App will display information for banana.");
break;
case "cherry":
Console.WriteLine($"App will display information for cherry.");
break;
}
Ekspresi match (yang juga dapat disebut sebagai ekspresi switch) adalah nilai setelah kata kunci , dalam hal ini switch. Setiap bagian sakelar didefinisikan oleh pola kasus. Pola kasus dibangun menggunakan kata kunci case diikuti dengan nilai. Pola kasus pertama dalam contoh ini adalah: case "apple":. Pola kasus adalah ekspresi Boolean yang mengevaluasi ke true atau false. Setiap bagian switch menyertakan sejumlah kecil baris kode yang akan dijalankan jika pola kasus cocok dengan ekspresi kecocokan. Dalam contoh ini, jika fruit diberi nilai "apple", pola kasus pertama akan mengevaluasi sebagai true dan bagian pengalihan tersebut akan dijalankan.
Pernyataan sakelar harus menyertakan setidaknya satu bagian sakelar, tetapi biasanya berisi tiga atau lebih bagian sakelar.
Sakelar paling baik digunakan ketika:
- Anda memiliki nilai tunggal (variabel atau ekspresi) yang ingin Anda cocokkan dengan banyak nilai yang mungkin.
- Untuk setiap pertandingan, Anda hanya perlu mengeksekusi beberapa baris kode saja.
Nota
Contoh pernyataan switch pertama ini sengaja sederhana dan pemeriksaan sintaksis Anda dilakukan secara singkat. Anda akan memeriksa fitur tambahan dari pernyataan switch ketika Anda menyelesaikan beberapa skenario yang lebih canggih di bagian berikut.
Saatnya untuk menyiapkan lingkungan pengkodian Anda dan mulai mengembangkan pernyataan Anda sendiri switch .
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.
Membuat dan menguji pernyataan pengalihan
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 dalam Editor Visual Studio Code:
int employeeLevel = 200; string employeeName = "John Smith"; string title = ""; switch (employeeLevel) { case 100: title = "Junior Associate"; break; case 200: title = "Senior Associate"; break; case 300: title = "Manager"; break; case 400: title = "Senior Manager"; break; default: title = "Associate"; break; } Console.WriteLine($"{employeeName}, {title}");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 melihat output berikut:
John Smith, Senior AssociateLuangkan waktu semenit untuk meninjau
switchpernyataan yang Anda masukkan.Perhatikan bahwa pernyataan
switchmendefinisikan satu blok kode tunggal.Pernyataan
switchmendefinisikan satu blok kode yang mencakup daftar bagian switch. Di sebelah kananswitchkata kunci adalah ekspresi pengalihan yang diapit tanda kurung.Perhatikan daftar bagian pengalihan di dalam blok kode.
switchBlok kode berisi daftar bagian sakelar, yang masing-masing menyertakan satu atau beberapa label sakelar. Selain itu, setiap bagian switch menyertakan daftar pernyataan yang akan dijalankan jika label sama dengan ekspresi switch yang ditentukan di bagian atas pernyataan switch.Ekspresi saklar dievaluasi terhadap label kasus dari atas ke bawah hingga nilai yang sama dengan ekspresi saklar ditemukan. Jika tidak ada label yang cocok, daftar pernyataan untuk kasus tersebut
defaultakan dijalankan. Jika tidak ada default yang disertakan, kontrol ditransfer ke titik akhir pernyataan pengalihan. Setiap label harus menyediakan jenis nilai yang cocok dengan jenis yang ditentukan dalam ekspresi pengalihan.Nota
Label opsional
defaultdapat muncul di posisi mana pun dalam daftar bagian pengalihan. Namun, sebagian besar pengembang memilih untuk menaruhnya di akhir karena lebih masuk akal (logis) untuk memposisikandefaultsebagai opsi terakhir. Terlepas dari posisinya,defaultbagian tersebut akan dievaluasi terakhir.Dalam contoh kami:
- ekspresi pengalihan adalah
(employeeLevel) - setiap bagian sakelar memiliki label sakelar tunggal (
caseataudefault). - bagian sakelar yang cocok didefinisikan oleh
case: 200, karenaemployeeLevel = 200.
- ekspresi pengalihan adalah
Perhatikan bahwa setiap bagian saklar dipisahkan dari bagian berikutnya.
Hanya satu bagian peralihan yang diizinkan untuk dijalankan. Ini berarti bahwa eksekusi bagian sakelar tidak diizinkan untuk langsung melanjutkan ke bagian sakelar berikutnya. Kata
breakkunci adalah salah satu dari beberapa cara untuk mengakhiri bagian pengalihan sebelum sampai ke bagian berikutnya. Jika Anda lupa kata kuncibreak(atau, opsional, kata kuncireturn), pengumpul akan menghasilkan kesalahan.
Mengubah nilai variabel tingkat untuk melihat bagaimana pernyataan pengalihan mengevaluasinya
Untuk menerapkan kasus default, mari kita ubah level karyawan dengan mengubah penetapan nilai.
Untuk mengubah nilai yang ditetapkan ke
employeeLevel, perbarui kode Anda sebagai berikut:int employeeLevel = 201;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.
Sekarang, ketika Anda menjalankan kode, Anda akan melihat judul yang lebih umum yang digunakan.
John Smith, AssociateKarena label
employeeLeveltidak cocok, labeldefaultdicocokkan.
Mengubah bagian sakelar untuk menyertakan beberapa label
Misalkan perusahaan kami memutuskan untuk memberi semua karyawan tingkat 100 gelar "Senior Associate" - judul yang sama dengan karyawan tingkat 200. Sebagai pengembang, Anda memutuskan untuk menerapkan ini dengan menghapus bagian sakelar pertama milik label case 100:, dan sebaliknya memungkinkan kedua label case 100: dan case 200: untuk menjalankan bagian sakelar yang sama.
Untuk mengubah nilai yang ditetapkan ke
employeeLevel, perbarui kode Anda sebagai berikut:int employeeLevel = 100;Untuk menetapkan beberapa label ke bagian sakelar pertama, perbarui kode Anda sebagai berikut:
case 100: case 200: title = "Senior Associate"; break;Setelah selesai membuat perubahan, modifikasi Anda harus cocok dengan kode berikut:
int employeeLevel = 100; string employeeName = "John Smith"; string title = ""; switch (employeeLevel) { case 100: case 200: title = "Senior Associate"; break; case 300: title = "Manager"; break; case 400: title = "Senior Manager"; break; default: title = "Associate"; break; } Console.WriteLine($"{employeeName}, {title}");Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda.
Masukkan
dotnet rundari perintah Terminal untuk menjalankan kode Anda.Anda akan melihat output berikut:
John Smith, Senior AssociateLabel kasus
100dan200sekarang dipasangkan dengan bagian sakelar yang mengatur judul ke nilai stringSenior Associate.
Ringkasan
Berikut adalah poin-poin utama yang Anda pelajari tentang pernyataan switch:
-
switchGunakan pernyataan saat Anda memiliki satu nilai dengan banyak kemungkinan kecocokan, setiap kecocokan yang memerlukan cabang dalam logika kode Anda. - Satu bagian sakelar yang berisi logika kode dapat dicocokkan menggunakan satu atau beberapa label yang ditentukan oleh kata kunci
case. - Gunakan kata kunci opsional
defaultuntuk membuat label dan bagian pengalih yang akan digunakan saat tidak ada label kasus lain yang cocok.