Switch dan Case

If else termasuk salah satu percabangan dalam bahasa C++. Selain if else percabangan lain dalam bahasa C++ adalah switch case. Switch case sama dengan if else yang menggunakan operator relasi sama dengan (==). Biasanya, switch case digunakan saat user diminta memilih sesuatu di dalam program. Sebelum lanjut lagi bahas teorinya, kita langsung ke contoh kodenya.

#include <iostream>

using namespace std;

int main(){
	int pilihan;
	cout << "Pilih buah kesukaanmu : " << endl;
	cout << "1.Apel" << endl;
	cout << "2.Anggur" << endl;
	cout << "3.Jeruk" << endl;
	
	cout << "Pilihan : ";cin >> pilihan;
	cout << "Anda memilih buah ";
	
	switch(pilihan){
	    case 1 :
	        cout << "apel";
	        break;
	    case 2 :
	        cout << "anggur";
	        break;
	    case 3 :
	        cout << "jeruk";
	        break;
	    default :
	        cout << "lainnya";
	}
	return 0;
}
Contoh :
Pilih buah kesukaanmu :
1.Apel
2.Anggur
3.Jeruk
Pilihan : 3
Anda memilih buah jeruk

Switch menggunakan satu variabel dan terdiri dari sekumpulan case. Nilai variabel tersebut akan dibandingkan dengan angka di dalam case. Setiap case perlu menggunakan tanda titik dua (:), dan diakhiri dengan break. Karena sudah ada break, kalian tidak perlu compound statement saat ada lebih dari satu statement di dalam case.

Switch membandingkan variabel dengan setiap nilai di dalam case. Jika nilai variabel sesuai salah satu case, maka statement-statement di dalam case tersebut akan dieksekusi sampai ditemukan "break". Jika tidak ada case yang sesuai, maka isi dari default yang akan dieksekusi. Default dalam switch kegunaannya sama dengan else dalam if.

Kalian bisa mengganti switch dengan if, tapi tidak untuk sebaliknya. Switch-case pada contoh di atas sama dengan if-else pada kode program di bawah ini.

#include <iostream>

using namespace std;

int main(){
	int pilihan;
	cout << "Pilih buah kesukaanmu : " << endl;
	cout << "1.Apel" << endl;
	cout << "2.Anggur" << endl;
	cout << "3.Jeruk" << endl;
	
	cout << "Pilihan : ";cin >> pilihan;
	cout << "Anda memilih buah ";
	
	if(pilihan == 1)cout << "apel";
	else if(pilihan == 2)cout << "anggur";
	else if(pilihan == 3)cout << "jeruk";
	else cout << "lainnya";
	return 0;
}

Ada saatnya penggunaan switch case akan lebih rapi dan bahkan lebih singkat daripada else. Kaliau kalian lebih suka pakai if else, kalian bisa tetap menggunakan if else.

Case tanpa Break?

Bagaimana kalau tidak ada break? Tanpa break, isi case lain di bawah case yang sesuai dengan nilai variabel switch akan dieksekusi sampai ada break.

#include <iostream>

using namespace std;

int main(){
	int pilihan;
	cout << "Pilih buah kesukaanmu : " << endl;
	cout << "1.Apel" << endl;
	cout << "2.Anggur" << endl;
	cout << "3.Jeruk" << endl;
	
	cout << "Pilihan : ";cin >> pilihan;
	cout << "Anda memilih buah ";
	
	switch(pilihan){
	    case 1 :
	        cout << "apel";
	    case 2 :
	        cout << "anggur";
	    case 3 :
	        cout << "jeruk";
	    default :
	        cout << "lainnya";
	}
	return 0;
}
Contoh :
Pilih buah kesukaanmu :
1.Apel
2.Anggur
3.Jeruk
Pilihan : 2
Anda memilih buah anggurjeruklainnya
Isi dari case tanpa break akan dieksekusi jika case di atasnya dipilih. Walaupun kalian memilih 2, statement dalam case 3 dan default akan dieksekusi.

Case tanpa break akan berguna saat ada beberapa case yang memerlukan beberapa statement yang sama.