Menguasai Pernyataan Switch C#: Sintaks, Contoh, dan Praktik Terbaik
C# switch Statement
Temukan cara menggantikan rantai if-else yang kompleks dengan pernyataan switch C# yang bersih dan mudah dibaca—dilengkapi contoh praktis.
Pernyataan switch menyederhanakan pengambilan keputusan dengan mengevaluasi satu ekspresi dan mengeksekusi blok case yang cocok. Dibandingkan rantai if-else yang panjang, sintaks switch lebih ringkas dan lebih mudah dipelihara.
Struktur dasarnya adalah:
switch (variableOrExpression) { case value1: // Code for value1 break; case value2: // Code for value2 break; // … default: // Code when no case matches }
Saat ekspresi cocok dengan case, blok yang sesuai berjalan hingga break mengakhiri switch. Jika tidak ada case yang cocok, blok default dijalankan, mirip dengan klausa else.
Tanpa break, eksekusi akan “fall through” dan melanjutkan ke case berikutnya—seringkali menyebabkan bug. Untuk menyelami lebih dalam C# break statement, lihat dokumentasi resmi.
Contoh 1: Mengidentifikasi Huruf Vokal
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; } } } }
Menjalankan program menghasilkan:
Enter an alphabet X Not a vowel
Di sini, input pengguna diubah menjadi huruf kecil dan dicocokkan dengan case vokal. Jika tidak ada vokal yang cocok, pesan default ditampilkan.
Karena semua case vokal melakukan tindakan yang sama, mereka dapat digabungkan:
Contoh 2: Grouped Cases
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 tetap sama, tetapi kode terlihat lebih bersih.
Pernyataan switch terbatas pada tipe data tertentu:
- Tipe primitif (bool, char, integral types)
- Enumerasi (enum)
- String
- Versi nullable dari di atas
Contoh 3: Kalkulator Sederhana
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; } } } }
Contoh eksekusi:
Enter first number: -13.11 Enter second number: 2.41 Enter operator (+, -, *, /): * -13.11 * 2.41 = -31.5951
Kalkulator ini menerima dua operan dan operator, kemudian melakukan operasi yang diminta menggunakan switch. Input dibaca melalui ReadLine() dan Read(); untuk lebih banyak tentang input/output, lihat C# Basic Input and Output.
Sementara rantai if-else dapat menggantikan switch, yang terakhir menawarkan niat yang lebih jelas dan eksekusi yang lebih cepat untuk nilai diskrit.