Pada artikel ini, kita akan belajar tentang pernyataan switch di C # dan bagaimana menggunakannya dengan contoh.
Pernyataan switch dapat digunakan untuk menggantikan pernyataan if… else if di C #. Keuntungan menggunakan switch over if… else if pernyataannya adalah kode akan terlihat lebih bersih dan mudah dibaca dengan switch.
Sintaks dari pernyataan switch adalah:
switch (variabel / ekspresi) (case value1: // Pernyataan dieksekusi jika ekspresi (atau variabel) = value1 break; case value2: // Pernyataan dieksekusi jika ekspresi (atau variabel) = value1 break;……………… default: / / Pernyataan dieksekusi jika tidak ada kasus yang cocok)
Pernyataan switch mengevaluasi ekspresi (atau variabel) dan membandingkan nilainya dengan nilai (atau ekspresi) dari setiap kasus (nilai1, nilai2,…). Ketika menemukan nilai yang cocok, pernyataan di dalam case itu akan dieksekusi.
Tetapi, jika tidak ada kasus di atas yang cocok dengan ekspresi, pernyataan di dalam default
blok akan dieksekusi. Pernyataan default di akhir sakelar mirip dengan pernyataan blok else in if else.
Namun masalah dengan pernyataan switch adalah, ketika nilai yang cocok ditemukan, ia mengeksekusi semua pernyataan setelahnya sampai akhir blok switch.
Untuk menghindari ini, kami menggunakan break
pernyataan di akhir setiap kasus. Pernyataan break menghentikan program dari mengeksekusi pernyataan yang tidak cocok dengan menghentikan eksekusi pernyataan switch.
Untuk mempelajari lebih lanjut tentang pernyataan break, kunjungi pernyataan break C #.
Contoh 1: Pernyataan saklar C #
using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': Console.WriteLine("Vowel"); break; case 'e': Console.WriteLine("Vowel"); break; case 'i': Console.WriteLine("Vowel"); break; case 'o': Console.WriteLine("Vowel"); break; case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) )
Saat kita menjalankan program, outputnya adalah:
Masukkan alfabet X Bukan vokal
Dalam contoh ini, pengguna diminta untuk memasukkan alfabet. Alfabet diubah menjadi huruf kecil dengan menggunakan ToLower()
metode jika dalam huruf besar.
Kemudian, pernyataan switch memeriksa apakah alfabet yang dimasukkan oleh pengguna adalah salah satu dari a, e, i, o or u
.
Jika salah satu kasus cocok, Vowel
dicetak jika tidak kontrol beralih ke blok default dan Not a vowel
dicetak sebagai output.
Karena, keluaran untuk semua vokal sama, kita dapat menggabungkan kasus sebagai:
Contoh 2: Pernyataan switch C # dengan kasus yang dikelompokkan
using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) )
Output dari kedua program tersebut sama. Dalam program di atas, semua vokal mencetak output Vowel
dan break dari pernyataan switch.
Meskipun pernyataan switch membuat kode terlihat lebih bersih daripada jika… else if pernyataan, switch dibatasi untuk bekerja dengan tipe data terbatas. Pernyataan switch di C # hanya berfungsi dengan:
- Tipe data primitif: tipe bool, char dan integral
- Jenis Enumerasi (Enum)
- Kelas String
- Jenis tipe data di atas tidak dapat dibatalkan
Contoh 3: Program kalkulator sederhana menggunakan Pernyataan saklar C #
using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char op; double first, second, result; Console.Write("Enter first number: "); first = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter second number: "); second = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter operator (+, -, *, /): "); op = (char)Console.Read(); switch(op) ( case '+': result = first + second; Console.WriteLine("(0) + (1) = (2)", first, second, result); break; case '-': result = first - second; Console.WriteLine("(0) - (1) = (2)", first, second, result); break; case '*': result = first * second; Console.WriteLine("(0) * (1) = (2)", first, second, result); break; case '/': result = first / second; Console.WriteLine("(0) / (1) = (2)", first, second, result); break; default: Console.WriteLine("Invalid Operator"); break; ) ) ) )
Saat kita menjalankan program, outputnya adalah:
Masukkan angka pertama: -13.11 Masukkan angka kedua: 2.41 Masukkan operator (+, -, *, /): * -13.11 * 2.41 = -31.5951
Program di atas mengambil dua operand dan satu operator sebagai input dari pengguna dan melakukan operasi berdasarkan operator.
Input diambil dari pengguna dengan menggunakan metode ReadLine()
dan Read()
. Untuk mempelajari lebih lanjut, kunjungi C # Input dan Output Dasar.
Program ini menggunakan pernyataan switch case untuk pengambilan keputusan. Sebagai alternatif, kita dapat menggunakan if-else if ladder untuk melakukan operasi yang sama.