Pernyataan switch adalah adalah pernyataan penyeleksian untuk memanipulasi jalanya aliran program berdasarkan conditional expression, Mengendalikan aliran program sehingga dapat berlangsung secara fleksibel atas situasi program dan permohonan user.

Pernyataan ini dapat menentukan solusi / pilihan yang cocok dengan ekspresi kondisi.

Pada umumnya penyataan switch tidak jauh berbeda seperti pernyataan penyeleksian IF, yang berbeda adalah switch dikhususkan untuk penyeleksian berdasarkan nilai berasal dari ekspresi.

Jika if mengevaluasi kebenaran berasal dari sebuah ekspresi (conditional expression) seperti operasi logika, relasi dan perbandingan yang menghasilkan bilangan boolean 1 (benar) atau 0 (salah).

Dalam pernyataan switch, penyeleksian dijalankan dengan memeriksa situasi (lebih tepatnya nilai) berasal dari suatu variabel bertipe integer, char atau enum dan menemukan kesamaan information yang dicari oleh keliru satu label case yang ada.

Bentuk pernulisan

switch (kondisi )
{
   case konstanta-1 :
         … perintah;
         … perintah;
   break;
   case konstanta-2 :
         … perintah;
         … perintah;
   break;
   default :
         … perintah;
         … perintah;
   break;
}

Pernyataan switch diawali bersama “switch” keyword dan sesudah itu menyertakan conditional expression yang diapit bersama sepasang isyarat kurung “ () ”, conditional expression bisa berupa variabel berasal dari integer, variabel berasal dari char atau enum.

Dan kami termasuk bisa lakukan operasi aritmatika, perihal itu diperbolehkan asal hasil berasal dari operasi merupakan integer, char atau enum.

Dan di didalam pengakuan switch ada bebrapa case label sebanyak yang dibutuhkan. Penulisan diawali bersama keyword case dan diikuti bersama konstanta nilai yang dicari.

Mereka dimasukan di didalam sepasang isyarat kurung kurawal “ ”, case di didalam pengakuan switch merupakan label yang berfaedah untuk menandai nilai yang dicari.

Keyword break merupakan pengakuan lompatan, dan merupakan anggota optional (dapat tidak digunakan) berfaedah untuk mengeluarkan CPU yang tengah berada didalam pengakuan switch, nampak dan melanjutkan baris sesudah keseluruhan pengakuan switch.

Label default merupakan pilihan yang akan dieksekusi dimana CPU tidak mendapatkan nilai yang dia cari sesuai yang dinyatakan pada conditional expression. Label berikut tidak harus untuk digunakan dan tempatnya harus berada di bawah.

Contoh Penulisan

   switch ( nomer ) {
         case 1 :
            cout << " Anda Memilih Angka 1 " ;
         break ;

         case 2 :
            cout << " Anda Memilih Angka 2 " ;
         break ;

         case 3 :
            cout << " Anda Memilih Angka 3 " ;
         break ;

         default :
            cout << " Pilihin default Terpilih " ;
         break ;
   }

Disaat CPU berjumpa pengakuan switch, CPU bakal memeriksa nilai yang berada sebagai conditional expression berasal dari switch tersebut. berasal dari situ CPU bakal melacak konstanta pada label case yang sesuai dengan nilai yang di cari.

Ketika sudah ditemukan, maka CPU bakal mengeksekusi perintah / pernyataan-pernyataan yang berada di bawah label dengan konstanta yang sesuai.

Keyword break merupakan optional, mampu tidak digunakan. Jika break tercantum, ketika CPU selesai mengeksekusi pengakuan di atas break dan berjumpa break maka eksekutor bakal dikeluarkan berasal dari pengakuan switch dan melanjutkan baris sesudah pengakuan switch.

Dan kalau break tidak disertakan, maka CPU bakal terus terjadi untuk mengeksekusi seluruh pengakuan termasuk pengakuan yang berada pada label case lain sampai berjumpa kurung kurawal penutup “}”.

switch ( nomer ) { //jika nomer bernilai 2
         case 1 :
            cout << " Anda Memilih Angka 1 " ;

         case 2 : // CPU mulai mengeksekusi
            cout << " Anda Memilih Angka 2 " ; //Dieksekusi

         case 3 ://dan akan terus mengeksekusi semua pernyataan hingga betemu break atau akhir dari pernyataan switch
            cout << " Anda Memilih Angka 3 " ;

         default :
            cout << " Pilihin default Terpilih " ;
   }

Jika CPU tidak mendapatkan nilai yang sesuai pada layaknya ekspresi, perihal itu bermakna CPU bakal mengeksekusi perintah di di dalam label default, terkecuali pengakuan switch tidak mempunyai label default maka pengakuan switch bakal diabaikan.

Contoh Program

#include 
using namespace std ;

int main() {
   int nomer ;

   cout << " Masukkan [1/2/3] : " ; cin >> nomer ;
   switch ( nomer ) {
         case 1 :
            cout << " Anda Memilih Angka 1 " ;
         break ;

         case 2 :
            cout << " Anda Memilih Angka 2 " ;
         break ;

         case 3 :
            cout << " Anda Memilih Angka 3 " ;
         break ;

         default :
            cout << " Pilihan default Terpilih " ;
         break ;
   }
    return 0 ;
}

Mendirikan variabel di di dalam pengakuan swich.
Ini adalah sedikit Info tambahan perihal switch. Pada bahasa pemrogramana C++ kita dimungkinkan untuk mendirikan tapi tidak mampu inisialisasi.

Barangkali ini terdngar normal karena kita termasuk mampu mendirikan variabel pada pengakuan penyeleksian if. bukan hal itu yang dapat penulis beritahu, ada sesuatu yang unik pada pernyatan switch.

Pendeklarasian beserta inisialisasi variabel kita dimungkinkan melaksanakan hal itu di di dalam suatu ruang lingkup. area lingkup function, pengakuan majemuk, apalagi pernaytaan if.

Didalam pernaytaan switch kita dimungkinkan untuk mendeklarasi sebuah variabel tapi tidak untuk di inisialisasi.

#include 
using namespace std ;

int main() {
    int nomer ;

    cout<<" Masukkan [1/2/3] : ";cin>>nomer;
    switch (nomer){
        case 1:
            char huruf ;
            huruf = 'a';
            cout<<huruf;
            break;

        case 2:
            huruf = 'b';
            cout<<huruf;
            break;
        case 3:
            huruf = 'c' ;
            cout<<huruf;
            break;

        default:
            huruf = 'z' ;
            cout<<huruf;
            break;
    }
    return 0 ;
}

Program di atas akan terjadi tanpa error. dan akan mencetak huruf a, b, c atau z bersama dengan pakai variabel yang didirikan di dalam label case 1. Meskpun aliran eksekusi CPU menentukan label case selain label 1 tetapi variable itu tetap bisa digunakan.

Apa yang kami tau di awalnya adalah, aliran pengeksekusian CPU terkecuali menumukan pernayataan penyeleksian dia akan mengevaluasi conditional expression.

Untuk program di atas conditional expressionnya adalah variabel ‘nomer’. Dan akan mengeksekusi perintah di bawah label case yang miliki nilai yang sama.

Jika anda berpiki bahwa itu aneh, itu bermakna anda benar. Kenapa variabel huruf tetap bisa digunakan biarpun berbeda case ?

Jawaban yang pertama adalah mereka tetap dalam satu ruang lingkup. Dan kenapa variabel tersebut bisa digunakan biarpun CPU tidak terlihat menyentuhnya.

Disaat anda mendirikan local variabel, sebetulnya variabel tidak dubuat sementara CPU mengeksekusi variabel tersebut tetapi variabel dibuat dan ada dikala CPU berjumpa bersama dengan block pembuka ruang lingkup.

Tapi variabel itu hanya tidak terlihat, dan terlihat setelah compiler berjumpa deklarasi tersebut. Sebenarnya variabel tidak butuh untuk dieksekusi, keberadaan berasal dari deklarasi variabel terhadap C++ sebetulnya hanya untuk memberitau compiler bahwa variabel akan terlhat setelah baris tersebut.

Dan hal yang lain, kami sebetulnya bisa deklarasi dan inisialisasi secara sejalan di dalam pengakuan switch. Untuk memicu deklarasi variabel bersama dengan inisialisasi di dalam pengakuan switch kami butuh sepasang block ruang lingkup yakni sepasang isyarat kurung kurawal “{}” tetapi hal itu akan menghalangi keberadaan berasal dari variabel, yang bisa memicu tidak bisa digunakan di luar scope dan terhitung dalam label case lain.

#include 
using namespace std ;

int main() {
    int nomer ;

    cout<<" Masukkan [1/2/3] : ";cin>>nomer;
    switch (nomer){
        case 1:{
            char huruf = 'a' ;
            cout<<huruf;
            break;
        }
        case 2:{
            char huruf = 'b';
            cout<<huruf;
            break;
        }
            
        case 3:{
            char huruf = 'c' ;
            cout<<huruf;
            break;
        }

        default:
            char huruf = 'z' ;
            cout<<huruf;
            break;
    }
    return 0 ;
}

LEAVE A REPLY

Please enter your comment!
Please enter your name here