যদি… নাহয়… (if… else…)

Computer এর CPU বা Central Processing Unit এ ALU বা Arithmetic & Logical Unit থাকে। ALU মুলত দু’টি Unit নিয়ে গঠিত। একটি হল AU বা Arithmetic Unit অপরটি হল LU বা Logical Unit। আমরা যত গাণিতিক কাজ করি যেমনঃ যোগ, বিয়োগ, গুণ ভাগ ইত্যাদি Arithmetic Unit এ হয়ে থাকে। আর যত যুক্তিগত কাজ যেমনঃ বড় ছোট বের করা ইত্যাদি Logic Unit এ হয়ে থাকে। আমরা এখন এই Logic Unit কে ব্যবহার করতে শিখবো। এর জন্য আমরা ব্যবহার করবো if… else… Statement।

if… else…: আমরা যদি কোন শর্ত সত্য হলে Computer কে দিয়ে কোন কাজ করাতে চাই তখন আমরা if ব্যবহার করবো। যেমনঃ আমরা যদি চাই যে দু’টি সংখ্যার মধ্যে প্রথমটি বড় হলে তা print করতে তাহলে আমাদের Code হবে এমনঃ

#include <stdio.h>

int main(){
    int a = 5, b = 4;
    if(a>b){
        printf(“%d is the largest number\n”, a);
    }
    return 0;
}

এখন এই Program টি Run করলে দেখতে পাবো 5 is the largest number। কারণ এখানে a, b এর চাইতে বড় তাই if এর ভিতরে যে শর্তটা আছে তা সত্য। কিন্তু আমরা যদি b = 6 দিয়ে এই Program টি Run করি তাহলে কিছুই দেখতে পাবো না। কারণ তখন if এর ভিতরের শর্তটা সত্য হবেনা। এখন আমরা যদি চাই যে শর্ত সত্য না হলেও কিছু করতে তাহলে আমাদের ব্যবহার করতে হবে else। অর্থাৎ ব্যপার টা হল যদি কোন শর্ত সত্য হয় তাহলে কিছু কাজ করবে আবার যদি মিথ্যা হয় তাহলেও কিছু কাজ করবে। আমরা এখন একটু Code দেখিঃ

#include <stdio.h>

int main(){
    int a = 5, b = 6;
    if(a>b){
        printf(“%d is the largest number\n”, a);
    }
    else {
        printf(“%d is the largest number\n”, b);
    }
    return 0;
}

এখন আমাদের শর্তটি সত্য না হলেও Program টি কিছু কাজ করবে। এক্ষেত্রে আমাদের Program যে সংখ্যাটি বড় তা print করবে।

Nested if… else…: আমরা কোন শর্ত সত্য হলে if এর {} এর ভিতরে যত কাজ লিখে দিব সব গুলোই কাজ করবে সেটা যে কাজই হোক না কেন। অর্থাৎ আমরা চাইলে সেখানে আরেকটি if… else… ও লিখে দিতে পারি। একে Nested if… else… বলা হয়। অর্থাৎ আমরা যদি একটি if… else… এর ভিতর আরেকটি if… else… দেই তাহলে তাকে Nested if… else… বলে। আমরা যদি তিনটি সংখ্যা হতে বড় সংখ্যাটি বের করতে চাই তাহলে আমরা Nested if… else… এর সাহায্য নিতে পারি।

#include <stdio.h>

int main(){
    int a = 5, b = 6, c = 7;
    // a, b এর চাইতে বড় হলে আমরা b কে বাদ দিয়ে দিবো এবং a নিয়ে পরবর্তী কাজ করবো
    if(a>b){
        // a, b এর চাইতে বড় এবং a যদি c এর চাইতেও বড় হয় তাহলে a ই সবচাইতে বড়
        if(a>c) {
            printf(“%d is the largest number\n”, a);
        }
        // যেহেতু b, a এর চাইতে ছোট এবং a, c এর চাইতে ছোট সেহেতু c ই সব চাইতে বড়
        else {
            printf(“%d is the largest number\n”, c);
        }
    }
    // b, a এর চাইতে বড় হলে আমরা a কে বাদ দিয়ে দিবো এবং b নিয়ে পরবর্তী কাজ করবো
    else {
        // b, a এর চাইতে বড় এবং b যদি c এর চাইতেও বড় হয় তাহলে b ই সবচাইতে বড়
        if(b>c) {
            printf(“%d is the largest number\n”, b);
        }
        // যেহেতু a, b এর চাইতে ছোট এবং b, c এর চাইতে ছোট সেহেতু c ই সব চাইতে বড়
        else {
            printf(“%d is the largest number\n”, c);
        }
    }
    return 0;
}

if… else if… সিঁড়িঃ আমরা চাইলে if এর ভিতর if না দিয়ে যে সকল শর্ত একে অপরে সাথে সম্পর্ক যুক্ত তাদের এক সাথে লিখতে পারি। এক্ষেত্রে আমাদের Logical Operator ব্যবহার করতে হবে। তিনটি সংখ্যার মধ্যে সব চাইতে বড় সংখ্যাটি বের করার Program টি আমরা আরেকটু সহজে করতে পারি।

#include <stdio.h>

int main(){
    int a = 4, b = 5, c = 6;
    if(a > b && a > c){
        printf(“%d is the largest number\n”, a);
        else if(b > a && b > c){
            printf(“%d is the largest number\n”, b);
            else {
                printf(“%d is the largest number\n”, c);
            }
    return 0;
}

আমাদের Program টা সুন্দর একটা সিঁড়ির আকার ধারন করেছে তাই একে if… else if… সিঁড়ি বলা হয়ে থাকে। এভাবেই লিখতে হবে এমন কোন নিয়ম নেই। তবে এভাবে লিখলে বুঝতে সুবিধা হয় এবং Code Organized থাকে।

আমাদের শর্ত মিথ্যা হওয়ার পর আমরা যদি Program কে দিয়ে কোন কাজ করাতে চাই তখন else ব্যবহার করছি। যদি শর্ত মিথ্যা হলে কোন কাজ করাতে না চাই তাহলে else ব্যবহার না করলেও হবে।

Advertisements
Tagged with: , , , ,
Posted in বেসিক প্রোগ্রামিং

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: