একটি সুইচ স্টেটমেন্ট একটি ভেরিয়েবলকে মানের তালিকার বিপরীতে সমতার জন্য পরীক্ষা করার অনুমতি দেয়। প্রতিটি মানকে একটি কেস বলা হয় এবং প্রতিটি সুইচ কেস-এর জন্য যে পরিবর্তনশীলটি চালু করা হচ্ছে তা পরীক্ষা করা হয় .
সি প্রোগ্রামিং ভাষায় একটি সুইচ স্টেটমেন্টের সিনট্যাক্স নিম্নরূপ -
switch(expression) { case constant-expression : statement(s); break; /* optional */ case constant-expression : statement(s); break; /* optional */ /* you can have any number of case statements */ default : /* Optional */ statement(s); }
নিম্নলিখিত নিয়মগুলি একটি সুইচ স্টেটমেন্ট -
-এ প্রযোজ্য-
অভিব্যক্তি একটি সুইচ এ ব্যবহৃত বিবৃতিতে অবশ্যই একটি অবিচ্ছেদ্য বা গণনাকৃত প্রকার থাকতে হবে, অথবা এমন একটি শ্রেণির প্রকারের হতে হবে যেখানে ক্লাসের একটি অবিচ্ছেদ্য বা গণনাকৃত প্রকারে একক রূপান্তর ফাংশন রয়েছে৷
-
একটি সুইচের মধ্যে আপনার কাছে যেকোন সংখ্যক কেস স্টেটমেন্ট থাকতে পারে। প্রতিটি ক্ষেত্রে তুলনা করা মান এবং একটি কোলন দ্বারা অনুসরণ করা হয়।
-
ধ্রুবক-প্রকাশ একটি ক্ষেত্রের জন্য সুইচের ভেরিয়েবলের মতো একই ডেটা টাইপ হতে হবে এবং এটি অবশ্যই একটি ধ্রুবক বা আক্ষরিক হতে হবে৷
-
যখন পরিবর্তনশীলটি একটি কেসের সমান হয়, তখন সেই কেসের পরবর্তী বিবৃতিগুলি ব্রেক পর্যন্ত কার্যকর হবে বিবৃতি পৌঁছেছে৷
-
যখন একটি ব্রেক বিবৃতিটি পৌঁছেছে, সুইচটি বন্ধ হয়ে যায় এবং নিয়ন্ত্রণের প্রবাহ সুইচ বিবৃতি অনুসরণ করে পরবর্তী লাইনে চলে যায়।
-
প্রতিটি ক্ষেত্রে একটি ব্রেক থাকা দরকার নেই৷ . যদি না হয় ব্রেক দেখা যাচ্ছে, একটি বিরতি না পৌঁছানো পর্যন্ত নিয়ন্ত্রণের প্রবাহ পরবর্তী ক্ষেত্রে পড়বে৷
-
একটি সুইচ স্টেটমেন্টে ঐচ্ছিক ডিফল্ট থাকতে পারে কেস, যা অবশ্যই সুইচের শেষে উপস্থিত হবে। ডিফল্ট কেসটি একটি কার্য সম্পাদনের জন্য ব্যবহার করা যেতে পারে যখন কোনও ক্ষেত্রেই সত্য হয় না। কোন ব্রেক নেই৷ ডিফল্ট ক্ষেত্রে প্রয়োজন।
উদাহরণ কোড
#include <stdio.h> int main () { /* local variable definition */ char grade = 'B'; switch(grade) { case 'A' : printf("Excellent!\n" ); break; case 'B' : case 'C' : printf("Well done\n" ); break; case 'D' : printf("You passed\n" ); break; case 'F' : printf("Better try again\n" ); break; default : printf("Invalid grade\n" ); } printf("Your grade is %c\n", grade ); return 0; }
আউটপুট
Well done Your grade is B