switch…case di C (Switch Statement di C) dengan Contoh
Apa itu Pernyataan Switch di C?
Ganti pernyataan di C menguji nilai suatu variabel dan membandingkannya dengan beberapa kasus. Setelah kecocokan kasus ditemukan, blok pernyataan yang terkait dengan kasus tertentu tersebut dieksekusi.
Setiap case dalam blok switch mempunyai nama/nomor berbeda yang disebut sebagai identifier. Nilai yang diberikan oleh pengguna dibandingkan dengan semua kasus di dalam blok switch hingga kecocokan ditemukan.
Jika kasus yang cocok TIDAK ditemukan, maka pernyataan default dijalankan, dan kontrol keluar dari blok switch.
Ganti Sintaks Kasus
Sintaks umum bagaimana switch-case diimplementasikan dalam program 'C' adalah sebagai berikut:
switch( expression ) { case value-1: Block-1; Break; case value-2: Block-2; Break; case value-n: Block-n; Break; default: Block-1; Break; } Statement-x;
- Ekspresinya bisa berupa ekspresi bilangan bulat atau ekspresi karakter.
- Nilai-1, 2, n adalah label kasus yang digunakan untuk mengidentifikasi setiap kasus secara individual. Ingatlah bahwa label kasus tidak boleh sama karena dapat menimbulkan masalah saat menjalankan program. Misalkan kita mempunyai dua kasus dengan label yang sama dengan '1'. Kemudian saat program dijalankan, case yang muncul pertama akan dieksekusi meskipun Anda ingin program mengeksekusi case kedua. Hal ini menimbulkan masalah pada program dan tidak memberikan keluaran yang diinginkan.
- Label kasus selalu diakhiri dengan titik dua ( : ). Masing-masing kasus ini dikaitkan dengan sebuah blok.
- Sebuah blok tidak lain hanyalah beberapa pernyataan yang dikelompokkan untuk kasus tertentu.
- Setiap kali saklar dijalankan, nilai ekspresi uji dibandingkan dengan semua kasus yang telah kita definisikan di dalam saklar. Misalkan ekspresi tes berisi nilai 4. Nilai ini dibandingkan dengan semua kasus sampai kasus yang labelnya empat ditemukan dalam program. Segera setelah sebuah kasus ditemukan, blok pernyataan yang terkait dengan kasus tersebut dieksekusi dan kendali keluar dari saklar.
- Kata kunci break dalam setiap kasus menunjukkan akhir dari kasus tertentu. Jika kita tidak menempatkan break pada setiap kasus maka meskipun kasus tertentu dieksekusi, saklar di C akan terus mengeksekusi semua kasus hingga akhir tercapai. Hal ini seharusnya tidak terjadi; oleh karena itu kita harus selalu memasukkan kata kunci break di setiap kasus. Break akan mengakhiri kasus ini setelah dieksekusi dan kendali akan lepas dari saklar.
- Kasus default bersifat opsional. Jika nilai test-expression tidak cocok dengan salah satu kasus di dalam switch, maka default akan dijalankan. Jika tidak, tidak perlu menulis default di switch.
- Setelah saklar dijalankan, kontrol akan menuju ke pernyataan-x, dan eksekusi program akan dilanjutkan.
Ganti Diagram Alir Pernyataan
Diagram berikut mengilustrasikan bagaimana sebuah kasus dipilih dalam switch case:
Ganti Contoh Kasus di C
Program berikut mengilustrasikan penggunaan switch:
#include <stdio.h> int main() { int num = 8; switch (num) { case 7: printf("Value is 7"); break; case 8: printf("Value is 8"); break; case 9: printf("Value is 9"); break; default: printf("Out of range"); break; } return 0; }
Keluaran:
Value is 8
- Dalam program yang diberikan kami telah menjelaskan inisialisasi a variabel angka dengan nilai 8.
- Konstruksi saklar digunakan untuk membandingkan nilai yang disimpan dalam variabel num dan mengeksekusi blok pernyataan yang terkait dengan kasus yang cocok.
- Dalam program ini, karena nilai yang disimpan dalam variabel num adalah delapan, switch akan mengeksekusi case yang case-labelnya adalah 8. Setelah mengeksekusi case, kontrol akan keluar dari switch dan program akan dihentikan dengan hasil sukses dengan mencetak nilai pada layar keluaran.
Coba ubah nilai variabel num dan perhatikan perubahan pada outputnya.
Misalnya, kita perhatikan program berikut yang secara default:
#include <stdio.h> int main() { int language = 10; switch (language) { case 1: printf("C#\n"); break; case 2: printf("C\n"); break; case 3: printf("C++\n"); break; default: printf("Other programming language\n");}}
Keluaran:
Other programming language
Saat bekerja dengan switch case di C, Anda mengelompokkan beberapa case dengan label unik. Anda perlu memperkenalkan pernyataan break dalam setiap kasus untuk membuat cabang di akhir pernyataan switch.
Kasus default opsional dijalankan ketika tidak ada kecocokan lain yang dibuat.
Kami mempertimbangkan pernyataan switch berikut:
#include <stdio.h> int main() { int number=5; switch (number) { case 1: case 2: case 3: printf("One, Two, or Three.\n"); break; case 4: case 5: case 6: printf("Four, Five, or Six.\n"); break; default: printf("Greater than Six.\n");}}
Keluaran:
Four, Five, or Six.
Sakelar Bersarang di C
In C, kita dapat memiliki saklar dalam yang tertanam di saklar luar. Selain itu, konstanta case pada saklar dalam dan luar mungkin mempunyai nilai yang sama dan tanpa konflik.
Kami menganggap program berikut yang meminta pengguna untuk mengetik ID-nya sendiri, jika ID valid maka akan meminta pengguna untuk memasukkan kata sandinya, jika kata sandinya benar program akan mencetak nama pengguna, jika tidak, program akan mencetak Kata Sandi Salah dan jika ID tidak ada, program akan mencetak ID Salah
#include <stdio.h> int main() { int ID = 500; int password = 000; printf("Plese Enter Your ID:\n "); scanf("%d", & ID); switch (ID) { case 500: printf("Enter your password:\n "); scanf("%d", & password); switch (password) { case 000: printf("Welcome Dear Programmer\n"); break; default: printf("incorrect password"); break; } break; default: printf("incorrect ID"); break; } }
Keluaran:
Plese Enter Your ID: 500 Enter your password: 000 Welcome Dear Programmer
- Dalam program yang diberikan kami telah menjelaskan dua variabel yang diinisialisasi: ID dan kata sandi
- Konstruk saklar luar digunakan untuk membandingkan nilai yang dimasukkan dalam ID variabel. Itu mengeksekusi blok pernyataan yang terkait dengan kasus yang cocok (ketika ID==500).
- Jika pernyataan blok dieksekusi dengan kasus yang cocok, saklar dalam digunakan untuk membandingkan nilai yang dimasukkan dalam kata sandi variabel dan mengeksekusi pernyataan yang terkait dengan kasus yang cocok (ketika kata sandi==000).
- Jika tidak, kasus sakelar akan memicu kasus default dan mencetak teks yang sesuai mengenai garis besar program.
Mengapa kita memerlukan casing Switch?
Ada satu potensi masalah dengan pernyataan if-else yang berarti kompleksitas program meningkat setiap kali jumlah jalur alternatif meningkat. Jika Anda menggunakan beberapa konstruksi if-else dalam program, program mungkin menjadi sulit dibaca dan dipahami. Kadang-kadang bahkan dapat membingungkan pengembang yang menulis program itu sendiri.
Solusi untuk masalah ini adalah pernyataan switch.
Aturan untuk pernyataan switch
- Sebuah ekspresi harus selalu dijalankan untuk menghasilkan suatu hasil.
- Label kasus harus konstan dan unik.
- Label kasus harus diakhiri dengan titik dua ( : ).
- Kata kunci break harus ada dalam setiap kasus.
- Hanya ada satu label default.
- Kita dapat menyarangkan beberapa pernyataan switch.
Ringkasan
- Peralihan adalah konstruksi pengambilan keputusan di 'C. "
- Switch digunakan dalam program yang melibatkan banyak keputusan.
- Switch harus berisi ekspresi pengujian yang dapat dieksekusi.
- Setiap kasus harus menyertakan kata kunci break.
- Label kasus harus konstan dan unik.
- Standarnya adalah opsional.
- Beberapa pernyataan switch dapat disarangkan satu sama lain.