Dalam artikel ini, kita akan belajar mengenai pernyataan beralih di C # dan cara menggunakannya dengan contoh.
Pernyataan peralihan boleh digunakan untuk mengganti pernyataan if… lain jika pernyataan di C #. Kelebihan menggunakan switch over jika… lain jika pernyataan adalah kod akan kelihatan lebih bersih dan mudah dibaca dengan switch.
Sintaks pernyataan suis adalah:
suis (pemboleh ubah / ungkapan) (nilai kes 1: // Pernyataan yang dilaksanakan jika ungkapan (atau pemboleh ubah) = nilai1 pecah; nilai kes 2: // Pernyataan yang dilaksanakan jika ungkapan (atau pemboleh ubah) = nilai1 pecah;………………… lalai: / / Penyataan dilaksanakan sekiranya tiada kes yang sesuai)
Pernyataan suis menilai ungkapan (atau pemboleh ubah) dan membandingkan nilainya dengan nilai (atau ungkapan) setiap kes (nilai1, nilai2,…). Apabila ia menemui nilai yang sepadan, pernyataan di dalam kes tersebut akan dilaksanakan.
Tetapi, jika tidak ada kes di atas yang sesuai dengan ungkapan, pernyataan di dalam default
blok dilaksanakan. Pernyataan lalai di akhir suis adalah serupa dengan blok yang lain dalam pernyataan if else.
Namun masalah dengan pernyataan beralih adalah, ketika nilai pencocokan dijumpai, ia melaksanakan semua pernyataan setelahnya hingga akhir blok suis.
Untuk mengelakkan ini, kami menggunakan break
pernyataan di akhir setiap kes. Pernyataan rehat menghentikan program daripada melaksanakan pernyataan yang tidak sepadan dengan menghentikan pelaksanaan pernyataan suis.
Untuk mengetahui lebih lanjut mengenai pernyataan rehat, lawati pernyataan rehat C #.
Contoh 1: Pernyataan suis 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; ) ) ) )
Semasa kita menjalankan program, outputnya adalah:
Masukkan abjad X Bukan huruf vokal
Dalam contoh ini, pengguna diminta memasukkan abjad. Huruf abjad ditukar menjadi huruf kecil dengan menggunakan ToLower()
kaedah jika terdapat dalam huruf besar.
Kemudian, pernyataan peralihan memeriksa sama ada abjad yang dimasukkan oleh pengguna adalah salah satu daripada a, e, i, o or u
.
Sekiranya salah satu kes itu sesuai, Vowel
dicetak sebaliknya kawalan menuju ke blok lalai dan Not a vowel
dicetak sebagai output.
Oleh kerana, output untuk semua vokal adalah sama, kita boleh bergabung dengan kes seperti:
Contoh 2: Pernyataan C # switch dengan kes berkumpulan
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; ) ) ) )
Keluaran kedua-dua program adalah sama. Dalam program di atas, semua vokal mencetak output Vowel
dan pecahan dari pernyataan beralih.
Walaupun pernyataan beralih menjadikan kod kelihatan lebih bersih daripada jika… jika tidak pernyataan, suis terhad untuk berfungsi dengan jenis data terhad. Tukar pernyataan di C # hanya berfungsi dengan:
- Jenis data primitif: jenis bool, char dan integral
- Jenis Bilangan (Enum)
- Kelas Rentetan
- Jenis yang boleh dibatalkan dari jenis data di atas
Contoh 3: Program kalkulator ringkas menggunakan Pernyataan C # switch
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; ) ) ) )
Semasa kita menjalankan program, outputnya adalah:
Masukkan nombor pertama: -13.11 Masukkan nombor kedua: 2.41 Masukkan operator (+, -, *, /): * -13.11 * 2.41 = -31.5951
Program di atas mengambil dua operan dan operator sebagai input dari pengguna dan melakukan operasi berdasarkan operator.
Input diambil dari pengguna menggunakan kaedah ReadLine()
dan Read()
. Untuk mengetahui lebih lanjut, lawati C # Basic Input and Output.
Program ini menggunakan pernyataan kes suis untuk membuat keputusan. Sebagai alternatif, kita boleh menggunakan if-else jika tangga untuk melakukan operasi yang sama.