switch…case di C (Switch Statement in C) dengan Contoh
Apa itu Pernyataan Switch di C?
Ganti pernyataan di C menguji nilai variabel dan membandingkannya dengan beberapa kasus. Setelah kecocokan kasus ditemukan, blok pernyataan yang terkait dengan kasus tertentu akan dieksekusi.
Setiap kasing dalam blok sakelar memiliki nama/nomor berbeda yang disebut sebagai pengenal. Nilai yang diberikan oleh pengguna dibandingkan dengan semua kasus di dalam blok sakelar hingga kecocokan ditemukan.
Jika kecocokan kasus TIDAK ditemukan, maka pernyataan default dijalankan, dan kontrol keluar dari blok sakelar.
Dalam tutorial ini, Anda akan belajar-
Apa itu Pernyataan Switch di C?
Ganti Sintaks Huruf Besar
Diagram Alir Pernyataan Beralih
Contoh Ganti Kasus di C
Saklar Bersarang di C
Mengapa kita membutuhkan Switch case?
Aturan untuk pernyataan peralihan
Ganti Sintaks Huruf Besar
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;
Ekspresi dapat berupa ekspresi bilangan bulat atau ekspresi karakter.
Nilai-1, 2, n adalah label kasus yang digunakan untuk mengidentifikasi setiap kasus secara individual. Ingat bahwa label kasus tidak boleh sama karena dapat menimbulkan masalah saat menjalankan program. Misalkan kita memiliki dua kasus dengan label yang sama dengan '1'. Kemudian saat menjalankan program, kasus yang muncul pertama akan dieksekusi meskipun Anda ingin program mengeksekusi kasus kedua. Ini menciptakan masalah dalam program dan tidak memberikan keluaran yang diinginkan.
Label huruf besar selalu diakhiri dengan titik dua ( :). Setiap kasus ini dikaitkan dengan sebuah blok.
Blok tidak lain adalah beberapa pernyataan yang dikelompokkan untuk kasus tertentu.
Setiap kali sakelar dieksekusi, nilai ekspresi uji dibandingkan dengan semua kasus yang telah kita definisikan di dalam sakelar. Misalkan ekspresi pengujian berisi nilai 4. Nilai ini dibandingkan dengan semua kasus sampai kasus yang berlabel empat ditemukan dalam program. Segera setelah kasus ditemukan, blok pernyataan yang terkait dengan kasus tertentu dieksekusi dan kontrol keluar dari sakelar.
Kata kunci break dalam setiap kasus menunjukkan akhir dari kasus tertentu. Jika kita tidak menempatkan break di setiap kasus maka meskipun kasus tertentu dijalankan, sakelar di C akan terus mengeksekusi semua kasus sampai akhir tercapai. Ini seharusnya tidak terjadi; maka kita selalu harus meletakkan kata kunci break dalam setiap kasus. Break akan menghentikan kasus setelah dijalankan dan kontrol akan lepas dari sakelar.
Kasus default adalah opsional. Setiap kali nilai ekspresi uji tidak cocok dengan salah satu kasus di dalam sakelar, maka default akan dieksekusi. Jika tidak, tidak perlu menulis default di sakelar.
Setelah switch dieksekusi, kontrol akan menuju ke pernyataan-x, dan eksekusi program akan dilanjutkan.
Diagram Alir Pernyataan Beralih
Diagram berikut mengilustrasikan bagaimana sebuah case dipilih dalam switch case:
Contoh Ganti 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 menginisialisasi variabel num dengan nilai 8.
Konstruk switch 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, sebuah switch akan mengeksekusi kasus yang berlabel kasus 8. Setelah mengeksekusi kasus, kontrol akan keluar dari switch dan program akan dihentikan dengan hasil yang berhasil dengan mencetak nilai pada layar keluaran.
Coba ubah nilai variabel num dan perhatikan perubahan outputnya.
Misalnya, kami mempertimbangkan program berikut yang 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 memasukkan pernyataan break dalam setiap kasus ke cabang di akhir pernyataan switch.
Kasus default opsional berjalan 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.
Saklar Bersarang di C
Di C, kita dapat memiliki sakelar dalam yang tertanam di sakelar luar. Selain itu, konstanta kasus dari sakelar dalam dan luar mungkin memiliki nilai yang sama dan tanpa konflik apa pun.
Kami mempertimbangkan program berikut di mana pengguna mengetikkan ID-nya sendiri, jika ID itu valid, ia akan memintanya untuk memasukkan kata sandinya, jika kata sandinya benar, program akan mencetak nama pengguna, jika tidak, program akan mencetak Salah Password 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;
}
}
OUTPUT:
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 sakelar luar digunakan untuk membandingkan nilai yang dimasukkan dalam ID variabel. Ini mengeksekusi blok pernyataan yang terkait dengan kasus yang cocok (ketika ID==500).
Jika pernyataan blok dieksekusi dengan kasus yang cocok, sakelar dalam digunakan untuk membandingkan nilai yang dimasukkan dalam kata sandi variabel dan mengeksekusi pernyataan yang ditautkan dengan kasus yang cocok (saat kata sandi==000).
Jika tidak, switch case akan memicu case default dan mencetak teks yang sesuai mengenai outline program.
Mengapa kita membutuhkan Switch case?
Ada satu masalah potensial dengan pernyataan if-else yaitu kompleksitas program meningkat setiap kali jumlah jalur alternatif meningkat. Jika Anda menggunakan beberapa konstruksi if-else dalam program, sebuah program mungkin menjadi sulit untuk dibaca dan dipahami. Kadang-kadang bahkan membingungkan pengembang yang menulis program itu sendiri.
Solusi untuk masalah ini adalah pernyataan switch.
Aturan untuk pernyataan switch
Ekspresi harus selalu dieksekusi ke hasil.
Label huruf besar-kecil harus berupa konstanta dan unik.
Label huruf besar harus diakhiri dengan titik dua ( :).
Kata kunci break harus ada dalam setiap kasus.
Hanya ada satu label default.
Kita dapat membuat banyak pernyataan switch.
Ringkasan
Switch adalah konstruksi pengambilan keputusan di 'C.'
Switch digunakan dalam program yang melibatkan banyak keputusan.
Sakelar harus berisi ekspresi uji yang dapat dieksekusi.
Setiap kasus harus menyertakan kata kunci break.
Label huruf besar-kecil harus konstan dan unik.
Defaultnya adalah opsional.
Beberapa pernyataan sakelar dapat disarangkan satu sama lain.