সূচিপত্র

সিতে প্রধানত দুইভাবে আমরা প্রোগ্রামের ফ্লোটা নিয়ন্ত্রন করে থাকি।

  • ব্রাঞ্চ
  • লুপ

ব্রাঞ্চিং বলতে বুঝায় প্রোগ্রাম যখন একাধিক ব্রাঞ্চের মধ্যে একটি ব্রাঞ্চ বেছে নেয়। এই কাজটি আমরা ইতোমধ্যেই করেছি if-else if-else এর মাধ্যমে। আমরা if-else if এর কাজটি একটি অপারেটর ব্যবহার করে করতে পারি। এটি হল ? অপারেটর।

? অপারেটর

এটি একটি টারনারী অপারেটর, অর্থাৎ এর তিনটি ভ্যালুর দরকার হয়। সি-এর একমাত্র টারনারী অপারেটর এটি। এর বেসিক স্ট্রাকচার হল এরকমঃ

if X ? Y : Z /* if X true, then Y, else Z */

এটি দ্বারা বুঝায় যদি X সত্য হয়, তাহলে Y হবে। X সত্য না হলে Z হবে।  আমরা একটি ছোট্ট কোড লিখে ফেলি।

#include <stdio.h>
int main() {
    int x = 100;
    (x%2==0)?printf("X is Even.\n"):printf("X is not Even.\n");
    (x%2==1)?printf("X is Odd.\n"):printf("X is not Odd.\n");
    return 0;
}

আউটপুটঃ

Snap 2015-09-04 at 19.03.10

দু’টি লাইন নিয়ে একটু চিন্তা করলেই বুঝতে পারার কথা!

সুইচ স্টেটমেন্ট

ধর তোমার কাছে একটা অ্যাপলিকেশন আছে। এখন এখানে ইউজার থেকে ১ থেকে ১০ পর্যন্ত বিভিন্ন সংখ্যা ইনপুট নেওয়া হয় এবং সে অনুযায়ী কাজ করা হয়। এখন আমরা if-else if-else দিয়ে কাজ করতে গেলে এখানে ১১ বার if, else if লেখা লাগবে! এ অবস্থা থেকে মুক্তির জন্যই আমরা ব্যবহার করতে পারি সুইচ স্টেটমেন্টটা। নিচে আমি একটি কোড লিখে দেখাই।

#include <stdio.h>
int main() {
    int x;
    scanf("%d", &x);
    switch (x) {
        case 1:
            printf("You pressed 1. Thank you.\n");
            break;
        case 2:
            printf("You pressed 2. Thank you.\n");
            break;
        case 3:
            printf("You pressed 3. Thank you.\n");
            break;
        case 4:
            printf("You pressed 4. Thank you.\n");
            break;
        case 5:
            printf("You pressed 5. Thank you.\n");
            break;
        case 6:
            printf("You pressed 6. Thank you.\n");
            break;
        case 7:
            printf("You pressed 7. Thank you.\n");
            break;
        case 8:
            printf("You pressed 8. Thank you.\n");
            break;
        case 9:
            printf("You pressed 9. Thank you.\n");
            break;
        case 10:
            printf("You pressed 10. Thank you.\n");
            break;
    }
    return 0;
}

কোডটা রান করে দেখ। ঠিকমতই কাজ করবে। এখানে break; স্টেটমেন্টগুলো খেয়াল কর। এগুলো দেওয়া হয়েছে, যাতে একটি জায়গায় শর্ত পূরণ হয়ে গেলে কম্পাইলার আর নিচের দিকের কেসগুলো চেক করে না দেখে। অন্যথায় নিচের দিকের কেসগুলো নিজ থেকেই ট্রু ধরে নেয়। তাই সুইচ স্টেটমেন্ট ব্যবহারের সময় break ব্যবহারের প্রতি বিশেষভাবে মনোযোগী হতে হবে।

আরেকটি ব্যাপার হল, আমরা ১১ বা তার চেয়ে বেশি কিছু ইনপুট দিলে কী হবে সেটা বলে দি নাই। তো সেটা আমরা করবো default ব্যবহার করে।

#include <stdio.h>
int main() {
    int x;
    scanf("%d", &x);
    switch (x) {
        case 1:
            printf("You pressed 1. Thank you.\n");
        case 2:
            printf("You pressed 2. Thank you.\n");

        case 3:
            printf("You pressed 3. Thank you.\n");

        case 4:
            printf("You pressed 4. Thank you.\n");

        case 5:
            printf("You pressed 5. Thank you.\n");

        case 6:
            printf("You pressed 6. Thank you.\n");

        case 7:
            printf("You pressed 7. Thank you.\n");

        case 8:
            printf("You pressed 8. Thank you.\n");

        case 9:
            printf("You pressed 9. Thank you.\n");

        case 10:
            printf("You pressed 10. Thank you.\n");

        default:
            printf("Wrong input\n");
    }
    return 0;
}

আমি ইচ্ছে করে কোডে একটা ভুল রেখে দিয়েছি। সেটা ঠিক করে নাও, কোড ঠিকভাবেই কাজ করবে। সুইচ স্টেটমেন্ট ব্যবহারে তোমাদের কোডগুলো হয়ে উঠুক আরও সুন্দর। হ্যাপি কোডিং!

Muntasir Wahed

Muntasir Wahed

System Administrator at স্বশিক্ষা.com
Jack of all trades, master of none.
Muntasir Wahed
Muntasir Wahed