if-else এর ব্যবহার

লিখেছেন: কাজী মুশফিকুর রহমান || সফটওয়্যার প্রকৌশলী, টেকনিয়াস (সফটওয়্যার নির্মাণ প্রতিষ্ঠান) || তারিখঃ 20 নভে., 2024


if-else ব্যবহার করে পাইথন প্রোগ্রামের ফ্লো (গতি) নিয়ন্ত্রণ করা যায়। ‘ if ’ অর্থ: যদি। এর পরে একটি কন্ডিশন (শর্ত) থাকে, যদি এটি সত্য হয়, তাহলে এর অধীনের স্টেটমেন্টটি এক্সিকিউট (রান) হয়। আর কন্ডিশনটি মিথ্যা হলে, স্টেটমেন্টটি এক্সিকিউট হয় না। এভাবে এর মাধ্যমে একাধিক কন্ডিশন মেইনটেইন করা যেতে পারে। প্রোগ্রামার ইচ্ছা করলে ‘ if ’ এর পরে এক বা একাধিক else ব্লক ব্যবহার করতে পারে, আবার তা স্কিপ ও করতে পারে, কারণ এটি অপশনাল। else অর্থ: অন্যথায়। অর্থাৎ যদি  ‘ if ’ এর কন্ডিশন না সত্য হয়, তাহলে else এর অধীনের স্টেটমেন্টটি এক্সিকিউট হয়। ‘ if ’ এবং else এর যেকোন একটি ব্লক এক্সিকিউট হয়, উভয়টি একসাথে এক্সিকিউট হয় না। নিচে এর  স্ট্রাকচার ব্যবহার উদাহরণসহ দেখান হলো:

 

 

If ব্লক: প্রথমে  ‘ if ’, তারপর ফার্স্ট ব্রাকেটের মধ্যে কন্ডিশন, তারপরে কোলন ‘ : ’ দিতে হবে। এরপর (নিচের লাইনে) এর অধীনে স্টেটমেন্ট  উল্লেখ করতে হবে।

else ব্লক: প্রথমে  else’, তারপরে কোলন ‘ : ’ দিতে হবে। এরপর (নিচের লাইনে) এর অধীনে স্টেটমেন্ট  উল্লেখ করতে হবে।

‘ if ’যদি এই কন্ডিশনটি সত্য হয়, তাহলে কাজটি করুন (স্টেটমেন্ট বা কোডটি রান করুন)।

‘ else ’যদি ‘ if ’ এর কন্ডিশনটি সত্য না হয়, তাহলে ‘ else ’ এর কাজটি করুন (স্টেটমেন্টটি রান করুন।

 

উপরের স্ট্রাটারটি একটি বাস্তব উদাহরণের সাহায্যে ব্যাখ্যা করা হলো।

উদাহরণ: যদি বিদ্যুৎ (electricity) থাকে তাহলে ফ্যান চলবে, অন্যথায় বিদ্যুৎ এর জন্য অপেক্ষা করুন।

if(electricity):

            ‘Fan will be run.’

else:

            ‘Wait for electricity.’

           

নোট: অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজে (যেমন: C, জাভা) সেকেন্ড ব্রাকেট ‘{ }’ যে কাজ করে, পাইথনে কোলন ‘:’ সেই কাজ করে। কোলন এবং ইন্ডেন্টেশন ব্যবহার করে কোডের স্কোপ বা ব্লক তৈরি করা হয়।

 

কোড:

number1 = 25

number2 = 20

if number1 > number2:

    print('number1 is greater than number2')

else:

    print('number1 is less than number2')   

 

উপরের কোডের প্রথম লাইনে number1 ভ্যারিয়েবলের মধ্যে ভ্যালু 25 এসাইন করেছি। দ্বিতীয় লাইনে number2 ভ্যারিয়েবলের মধ্যে ভ্যালু 20 এসাইন করেছি। তৃতীয় লাইনে ‘ if ’ এর পরে একটি কন্ডিশন (number1 > number2 অর্থ: যদি number1, number2 থেকে  বড় হয়) দিয়ে চেক করেছি যে, যদি 25, 20 থেকে বড় হয়, তাহলে চতুর্থ লাইনটি প্রিন্ট হবে। যেহেতু এক্ষেত্রে কন্ডিশনটি true (25, 20 থেকে বড়), তাই চতুর্থ লাইনটি প্রিন্ট হয়েছে। ‘ if ’ এর কন্ডিশনটি true হওয়ায়  ‘ else ’ এর ব্লকটি এক্সিকিউট হয়নি। এখন উপরের কোডটি রান করলে নিচের মত আউটপুট পাব।

আউটপুট:

number1 is greater than number2

 

এখন আমরা আরেকটি কোড দেখব যেখানেelse’ ব্লক এক্সিকিউট হবে (কাজ করবে)

কোড:

number1 = 20

number2 = 25

# if 20 > 25:

if number1 > number2:

     print('number1 is greater than number2')

else:

     print('number1 is less than number2')

 

উপরের কোডের প্রথম লাইনে number1 ভ্যারিয়েবলের মধ্যে ভ্যালু 20 এসাইন করেছি। দ্বিতীয় লাইনে number2 ভ্যারিয়েবলের মধ্যে ভ্যালু 25 এসাইন করেছি। চতুর্থ লাইনে ‘ if ’ এর পরে একটি কন্ডিশন (number1 > number2 অর্থ: যদি number1, number2 থেকে  বড় হয়) দিয়ে চেক করেছি যে, যদি 20, 25 থেকে বড় হয়, তাহলে পঞ্চম লাইনটি প্রিন্ট হবে। যেহেতু এক্ষেত্রে কন্ডিশনটি মিথ্যা (20, 25 থেকে বড় নয়), তাই পঞ্চম লাইনটি প্রিন্ট হয়নি। বরং ‘ else ’ এর ব্লকটি এক্সিকিউট হয়েছে। এখন উপরের কোডটি রান করলে নিচের মত আউটপুট পাব।

আউটপুট:

number1 is less than number2

 

if … elif … else

if ব্লকের পরে এক বা একাধিক ‘elif’ ব্লক আসতে পারে, এবং এরপরে else ব্লক ঐচ্ছিকভাবে ব্যবহৃত হয়। ‘elif’ ব্লক (সি প্রোগ্রামিং এর)  ‘সুইচ কেস’ এর বিকল্প হিসাবে কাজ করে। নিচে এর  স্ট্রাকচার ব্যবহার উদাহরণসহ দেখানো হলো:

 

 

If ব্লক: প্রথমে  ‘ if ’, তারপর ফার্স্ট ব্রাকেটের মধ্যে কন্ডিশন, তারপরে কোলন ‘ : ’ দিতে হবে। এরপর (নিচের লাইনে) এর অধীনে স্টেটমেন্ট  উল্লেখ করতে হবে।

elif  ব্লক: প্রথমে  elif’, তারপর ফার্স্ট ব্রাকেটের মধ্যে কন্ডিশন, তারপরে কোলন ‘ : ’ দিতে হবে। এরপর (নিচের লাইনে) এর অধীনে স্টেটমেন্ট  উল্লেখ করতে হবে।

আপনি চাইলে if ব্লক এর পরে এক বা একাধিক elif ব্লক ব্যবহার করতে পারেন।

else ব্লক: প্রথমে  else’, তারপরে কোলন ‘ : ’ দিতে হবে। এরপর (নিচের লাইনে) এর অধীনে স্টেটমেন্ট  উল্লেখ করতে হবে।

‘ if ’যদি এই কন্ডিশনটি সত্য হয়, তাহলে কাজটি করুন (স্টেটমেন্টটি রান করুন)।

‘ elif ’যদি ‘ if ’ এর কন্ডিশনটি সত্য না হয়, তাহলে ‘ elif ’ এর কন্ডিশনটি চেক করুন, যদি তা সত্য হয়, তাহলে কাজটি করুন (এর অধীনে স্টেটমেন্টটি রান করুন)।

‘ else ’যদি উপরের সবগুলো কন্ডিশন মিথ্যা হয়, তাহলে ‘ else ’ এর কাজটি করুন (এর অধীনে স্টেটমেন্টটি রান করুন)।

 

উপরের স্ট্রাটারটি একটি বাস্তব উদাহরণের সাহায্যে ব্যাখ্যা করা হলো।

উদাহরণ: যদি আপনার ভোটার আইডি কার্ড থাকে তাহলে আপনি ভোট দিন, আর যদি ভোটার আইডি কার্ড  না থাকে তাহলে তৈরী করুন।  অন্যথায় ‘আপনি অপরাধী হিসাবে দণ্ডিত হবেন।

if( আপনার ভোটার আইডি কার্ড থাকে ):

            ‘তাহলে আপনি ভোট দিন.’

elif( আপনার ভোটার আইডি কার্ড  না থাকে ):

            ‘তাহলে ভোটার আইডি কার্ড তৈরী করুন.’

else:

            ‘আপনি অপরাধী হিসাবে দণ্ডিত হবেন.’

 

এখন আমরা if … elif … else ব্যবহার করে একটি কোড দেখব। এবং 5 জোড় না বিজোড় জোড় তা চেক করব।

কোড:

n = 5

# if n is equal to 0:

if n == 0:

    print('n is zero')

# After dividing 5 by 2, if its remainder is 0:

elif n % 2 == 0:

    print('n is even')

# If all the above conditions are false:

else:

    print('n is odd')   

 

উপরের কোডের প্রথম লাইনে n ভ্যারিয়েবলের মধ্যে ভ্যালু 5 এসাইন করেছি। তৃতীয় লাইনে চেক করেছি যে n (5), 0 এর সমান কি  না। যেহেতু 5, 0 এর সমান না (কন্ডিশনটি মিথ্যা) তাই চতুর্থ লাইনটি প্রিন্ট (এক্সিকিউট) হবে না। ষষ্ঠ লাইনে চেক করেছি যে 5 কে 2 দিয়ে ভাগ করলে ভাগশেষ 0 হয় কি না। যেহেতু ভাগশেষ 0 হয় না (কন্ডিশনটি মিথ্যা) তাই সপ্তম লাইনটি প্রিন্ট (এক্সিকিউট) হবে না। যেহেতু উপরের সবগুলো কন্ডিশন মিথ্যা (False), তাই ‘ else ’ ব্লকটি এক্সিকিউট হয়েছে, এবং দশম লাইনটি প্রিন্ট হয়েছে। এখন উপরের কোডটি রান করলে নিচের মত আউটপুট পাব।

আউটপুট:

n is odd

 

 

 

 

0