IT Home Solution
C Programming

Switch case in c Programming

একটা ভ্যালু এর উপর নির্ভর করে অনেক গুলো স্টেটম্যান্ট থেকে একটা স্টেটম্যান্ট এক্সিকিউট করার জন্য switch case ব্যবহার করা হয়। switch case সাধারণত নিচের মত করে লেখা হয়ঃ

 

switch ( variable ) {

case expression 1:

statement;

break;

case expression 2:

statement;

break;

case expression 3:

statement;

break;

default:

statement;

break;

 

}

 

এখানে যদি switch ( variable ) এর variable টির মান expression 1 এর সাথে মিলে, তাহলে case expression 1 এর statement এক্সিকিউট হবে। যদি variable টির মান expression 2 এর সাথে মিলে, তাহলে case expression 2 এর statement এক্সিকিউট হবে। যদি variable টির মান expression 3 এর সাথে মিলে, তাহলে case expression 3 এর statement এক্সিকিউট হবে। যদি কোনটির সাথেই না মিলে, তাহলে default এর statement টি এক্সিকিউট হবে। এখানে যত ইচ্ছে তত গুলো case যুক্ত করা যাবে। আর case এর স্টেটম্যান্ট শেষে break; যুক্ত করতে হয়। break; মানে হচ্ছে আমাদের কাজ শেষ, এবার switch case থেকে বের হতে পারি। break; টা খুবি গুরুত্ত্বপূর্ণ।

 

এখনো একটু জটিল মনে হতে পারে বিষয়টা, আমরা একটা উদাহরন দেখলে অনেক সহজ হয়ে যাবে এই switch case স্টেটম্যান্টটি। আমরা একটা প্রোগ্রাম লিখব এমন, যেখানে যদি আমরা r ইনপুট দি, তাহলে লেখা উঠবে You select Red, যদি w ইনপুট দি, তাহলে লেখা উঠবে You select White. যদি b ইনপুট দি, তাহলে লেখা উঠবে You select Black. আর প্রোগ্রামটা লিখব আমরা switch case ব্যবহার করে।

 

#include <stdio.h>

int main ()

{

char colorCode;

printf(“Enter first word of Red, White or Black: \n”);

scanf(“%c”, &colorCode);

 

 

switch ( colorCode ) {

case ‘r’ :

printf(“You select Red.”);

break;

 

case ‘w’:

printf(“You select White.”);

break;

 

case ‘b’:

printf(“You select Black.”);

break;

 

default:

printf(“Wrong choose!”);

break;

}

return 0;

}

 

উপরের প্রোগ্রামটি রান করি, তারপর r, w, b এ তিনটার মধ্যে যে কোন একটা ইনপুট দিলে ঐ কালারটা দেখবে। আর যদি আমরা অন্য কোন কারেকটার ইনপুট দি, তাহলে লেখা উঠবে Wrong choose!।

switch case এর switch ( colorFirsWord ) এর ভেতরে যে ভ্যারিয়েবলটি রয়েছে, তার মান যদি case ‘r’ এর সাথে মিলে, মানে colorFirsWord এর মান r হয়, তাহলে প্রোগ্রামটি এ স্টেটম্যান্টটি এক্সিকিউট করবেঃ printf(“You select Red.”); এরপরের স্টেটম্যান্ট হচ্ছে break; মানে হচ্ছে আমরা যে কাজ করার জন্য switch case এর ভেতরে প্রবেশ করেছি, তা শেষ হয়েছে। switch case থেকে এবার আমরা বের হতে পারি। break দিয়ে switch case ঐখানেই বন্ধ করে দেওয়া হয়।

 

একই ভাবে যদি আমরা w ইনপুট দি, তাহলে case ‘r’ এর সাথে মিলিয়ে দেখবে। যেহেতু আমরা w ইনপুট দিয়েছি, প্রথম case এর সাথে মিলে না। পরের case দেখবে। পরের case এ এসে দেখবে case ‘w’ তে ইনপুটির সাথে মিল পেয়েছে, তাই এর পরে থাকা স্টেটম্যান্টটি এক্সিকিউট করবে। printf(“You select White.”); এবং এর পর break দিয়ে switch case থেকে বের হবে।

 

একই ভাবে আমরা যদি b ইনপুট দি, তাহলে উপরের দুইটা case এ কোন মিল পাবে না, তাই ঐ case গুলোর স্টেটম্যান্ট গুলোও এক্সিকিউট হবে না। শুধু মাত্র case ‘b’ এর স্টেটম্যান্ট গুলো এক্সিকিউট হবে।

 

যদি আমরা অন্য কোন কারেকটার ইনপুট দি, তাহলে তার জন্য রয়েছে ডিফল্ট ভ্যালু। তখন লেখা উঠবে Wrong choose!

 

বিদ্রঃ switch ( colorCode ) এর এখানে যে কোন Expression আমরা লিখতে পারি। এমন একটা উদাহরন আমরা দেখব। আবার case এ আমরা একের অধিক স্টেটম্যান্ট লিখতে পারব। তার উদাহরণ একটু পরই দেখব।

 

উপরের প্রোগ্রামটিতে আমরা যদি বড় হাতে R, W বা B ইনপুট দি, তাহলে লেখা উঠবে Wrong choose!। এখন আমরা উপরের প্রোগ্রামটিকে আরেকটু মডিফাই করব, যেন ছোট বা বড় হাতে colorCode ইনপুট দিলে উভয় ক্ষেত্রেই আমাদের সঠিক আউটপুট দেয়।

 

#include <stdio.h>

int main ()

{

char colorCode;

printf(“Enter first word of Red, White or Black: \n”);

scanf(“%c”, &colorCode);

 

 

switch ( colorCode ) {

case ‘r’ :

case ‘R’ :

printf(“You select Red.”);

break;

 

case ‘w’:

case ‘W’ :

printf(“You select White.”);

break;

 

case ‘b’:

case ‘B’ :

printf(“You select Black.”);

break;

 

default:

printf(“Wrong choose!”);

break;

}

return 0;

}

 

এখানে আমরা লক্ষ্য করলে দেখব আমরা এখন break এর ব্যবহার ছাড়া এক সাথে দুই বার case ব্যবহার করেছি। যেমনঃ

 

case ‘r’ :

case ‘R’ :

 

এভাবে break ছাড়া একের অধিক case লিখলে সে গুলো OR অপারেশনের মত কাজ করে। একটা সত্য হলে ঐ case গুলোর পরের Expression গুলো এক্সিকিউট হবে। এবং break পাওয়া পর্যন্ত অপেক্ষা করবে।

 

switch case এর ভেতরে যে কোন কোডই রান করানো যায়, লুপ চালানো, ফাংশান কল করা সহ সব কিছু। প্রথমে একটা প্রোগ্রাম লিখব, যেখানে switch case এর ভেতরে আমরা একবার for লুপ ব্যবহার করব, একবার while লুপ ব্যবহার করব। এটা বুঝানোর জন্য যে আমরা ইচ্ছে করলে যে কোন কোডই রান করাতে পারি switch case এর মধ্যেঃ

 

#include <stdio.h>

int main ()

{

int code;

int i = 0;

printf(“Enter 1 to print even integers or enter 2 to print odd integers: “);

scanf(“%d”, &code);

 

 

switch ( code ) {

case 1 :

while(i<=100){

printf(“%d \n”, i);

i=i+2;

}

break;

 

 

case 2 :

for(i =1; i<=100; i=i+2)

printf(“%d \n”, i);

 

break;

 

 

default:

printf(“Wrong choose!”);

break;

}

return 0;

}

 

প্রোগ্রামটা আমাদের 1 অথবা 2 ইনপুট দিতে বলবে। 1 ইনপুট দিলে ১ থেকে ১০০ পর্যন্ত বেজোড় সংখ্যা গুলো প্রিন্ট করবে। আর 2 ইনপুট দিলে ১ থেকে ১০০ পর্যন্ত জোড় সংখ্যা গুলো প্রিন্ট করবে।

 

আমরা ইচ্ছে করলে switch case এর ভেতর থেকে ফাংশন ও কল করতে পারি। নিচের প্রোগ্রামটি দেখিঃ

 

#include <stdio.h>

int main ()

{

void playGame(){

printf(“You choose to Play the game.”);

}

void closeGame(){

printf(“You choose to Close the game.”);

}

 

 

int code;

 

printf(“Enter 1 to play the Game.\nEnter 2 to close the Game :”);

scanf(“%d”, &code);

 

 

switch ( code ) {

case 1 :

playGame();

break;

 

 

case 2 :

closeGame();

break;

 

 

default:

printf(“Wrong choose!”);

break;

}

return 0;

}

 

আমরা দুইটা ফাংশন তৈরি করেছি, playGame() এবং closeGame()। ব্যবহারকারী 1 ইনপুট দিলে playGame() ফাংশনটি কল হবে, এবং 2 ইনপুট দিলে closeGame() ফাংশন কল হবে… এভাবে নিজের মত করে নিজের ক্রিয়েটিভিটি ব্যবহার করে আমরা প্রয়োজন মত আমাদের প্রোগ্রামে switch case ব্যবহার করতে পারি। শুভ প্রোগ্রামিং ☺

46 thoughts on “Switch case in c Programming

  1. Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your point.
    You clearly know what youre talking about, why waste your intelligence on just posting videos to your site when you
    could be giving us something enlightening to read?

  2. I’m really enjoying the design and layout of
    your site. It’s a very easy on the eyes which makes it much
    more enjoyable for me to come here and visit more often. Did you hire out a designer
    to create your theme? Great work!

  3. Does your website have a contact page? I’m having
    a tough time locating it but, I’d like to shoot you an e-mail.

    I’ve got some suggestions for your blog you might
    be interested in hearing. Either way, great blog and I look forward to seeing it grow over time.

  4. wonderful points altogether, you just gained a new reader.
    What might you suggest in regards to your publish that you just
    made some days ago? Any positive?

  5. Thank you for some other magnificent article. The place else may anyone
    get that type of info in such a perfect way of writing?
    I’ve a presentation subsequent week, and I’m on the search
    for such info.

  6. Link exchange is nothing else but it is simply placing
    the other person’s website link on your page at appropriate place and other person will also
    do same for you.

  7. Thanks a lot for sharing this with all of
    us you actually understand what you’re talking about!
    Bookmarked. Kindly also discuss with my web site =). We will
    have a hyperlink exchange contract between us

  8. Hello there I am so delighted I found your blog page, I really found you
    by error, while I was looking on Yahoo for something else, Anyways I am here now and would just like to say kudos for a remarkable post
    and a all round entertaining blog (I also love the theme/design), I don’t have time to read it
    all at the minute but I have bookmarked it and also added
    your RSS feeds, so when I have time I will be
    back to read much more, Please do keep up the excellent jo.

  9. I’m not that much of a online reader to be honest but your blogs really nice, keep it up!

    I’ll go ahead and bookmark your website to come back later.
    Cheers

  10. Wow, marvelous blog layout! How long have you been blogging for?
    you make blogging look easy. The overall look of your website is
    wonderful, as well as the content!

  11. With havin so much written content do you ever run into any problems of plagorism or copyright infringement?
    My website has a lot of exclusive content I’ve either authored myself or
    outsourced but it seems a lot of it is popping it up all over the web without my authorization. Do
    you know any techniques to help reduce content from being stolen? I’d truly appreciate it.

  12. This is the right site for anyone who really
    wants to find out about this topic. You know a whole lot its almost hard to argue with you (not that I
    personally will need to…HaHa). You definitely put a brand new spin on a topic that has been written about for a long time.

    Great stuff, just wonderful!

  13. I do trust all of the ideas you’ve presented for your post.
    They’re really convincing and can definitely
    work. Still, the posts are very short for novices.

    May just you please prolong them a bit from subsequent
    time? Thanks for the post.

  14. Great beat ! I wish to apprentice even as you amend your site, how
    can i subscribe for a weblog web site? The account aided me a appropriate deal.
    I were a little bit familiar of this your broadcast provided shiny clear concept

  15. Hello would you mind sharing which blog platform you’re
    using? I’m going to start my own blog soon but I’m having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.

    The reason I ask is because your layout seems different then most
    blogs and I’m looking for something completely unique.
    P.S Sorry for being off-topic but I had to ask!

  16. Fantastic website you have here but I was curious if
    you knew of any message boards that cover the same topics talked about in this article?
    I’d really love to be a part of community where I
    can get opinions from other knowledgeable individuals that share the same interest.

    If you have any suggestions, please let me know.

    Thank you!

  17. Having read this I believed it was very informative.

    I appreciate you taking the time and effort to put this short article together.
    I once again find myself personally spending a significant amount
    of time both reading and leaving comments. But so what, it was still worth it!

  18. Hmm it looks like your website ate my first comment (it was super long) so I
    guess I’ll just sum it up what I wrote and say,
    I’m thoroughly enjoying your blog. I too am an aspiring blog writer but I’m still new to
    the whole thing. Do you have any recommendations for inexperienced
    blog writers? I’d definitely appreciate
    it.

  19. I blog quite often and I truly thank you for your information. The article has truly peaked
    my interest. I’m going to bookmark your site and keep checking for new details about once a week.
    I subscribed to your Feed too.

  20. Hey there, I think your website might be having browser
    compatibility issues. When I look at your website
    in Opera, it looks fine but when opening in Internet Explorer, it has some overlapping.
    I just wanted to give you a quick heads up!
    Other then that, amazing blog!

  21. I’m not that much of a internet reader to be honest but your sites really nice,
    keep it up! I’ll go ahead and bookmark your website to come back later
    on. Many thanks

  22. Hi there! Someone in my Facebook group shared this website with us so I came to look it over.
    I’m definitely enjoying the information. I’m book-marking and will be tweeting this to my followers!
    Excellent blog and brilliant design.

  23. I don’t even know how I finished up right here, but I assumed this put up used to
    be good. I don’t know who you are however certainly you’re going to
    a well-known blogger in the event you aren’t already.
    Cheers!

  24. That is really fascinating, You are an excessively
    professional blogger. I’ve joined your rss feed
    and look forward to in quest of extra of your magnificent post.
    Also, I have shared your site in my social networks

  25. Terrific article! This is the type of information that should be
    shared around the internet. Disgrace on the seek engines for
    now not positioning this publish higher! Come on over and talk over with my website .
    Thanks =)

Leave a Reply

Your email address will not be published. Required fields are marked *