‘পাগল’ শব্দটি শুনলেই আমরা একটা রুক্ষ, খুস্ক চেহারা চিন্তা করে ফেলি। মানসিক ভাবে যে হবে বিপর্যস্ত। কিন্তু ‘পাগল’ শব্দটি কি শুধু ঋণাত্মক অর্থেই ব্যাবহার করি থাকি আমরা? না, অনেক সময় কাউকে ভালো বা আহ্লাদ করেও কিন্তু ‘পাগল’ বলে থাকি। যেমন ‘খেলা পাগল’, ‘বই পাগল’, ‘গণিত পাগল’ কিংবা ‘বউ পাগল’। জিতু নামে আমার এক বন্ধু আছে যাকে আমরা বন্ধুরা মিলে ‘গণিত পাগল’ বলে থাকি। আজকে সেই ‘গণিত পাগল’ বন্ধুর ‘গণিত’ এর কিছু operator এর সাথে প্রোগ্রামিং জগতের কিছু operator তুলনার পাশাপাশি প্রোগ্রামিং এর বিভিন্ন operator সম্পর্কে আলোচনা করার চেষ্টা করব।

অপারেটর (operator) এর সংজ্ঞা অনেকভাবে দেয়া যায়। যেমন ধরুন যে গাড়ি চালায় সেও কিন্তু একজন অপারেটর, আবার যে বিমান চালায় তাকেও কিন্তু বিমানের অপারেটর বলা যেতে পারে। বাংলায় operator এর অর্থ হল চালক বা চালনাকারী। ক্ষেত্র বিশেষে কার্যকারকও বলা হয়ে থাকে। তাহলে অপারেটর বলতে কি বুঝাচ্ছে? সাধারন অর্থে অপারেটর হচ্ছে যার দ্বারা অপারেশান করে থাকি আমরা। গণিতের কথা চিন্তা করুন, গণিতে অপারেশান হচ্ছে যোগ, বিয়োগ, গুন, ভাগ ইত্যাদি। আর এগুলো করতে সাহায্য করে যে সেই হচ্ছে অপারেটর অর্থাৎ +,-,x এবং / । প্রোগ্রামিং এ অপারেটর হচ্ছে কিছু চিহ্ন যা প্রোগ্রামে আমাদেরকে গাণিতিক কিংবা লজিক ভিত্তিক অপারেশান করতে সাহায্য করে। অন্যভাবে বলা যায়, অপারেটর আমাদের হয়ে কম্পিউটারকে বলে দেয় যে আমরা কোন গাণিতিক বা লজিকাল অপারেশন করতে চাচ্ছি। আর গণিতের এই +,-,x,/ এগুলোকে প্রোগ্রামিং এ বলা হয়ে থাকে এরিথমেটিক অপারেটর (arithmetic operator)। আসুন এক নজরে দেখে নেই প্রোগ্রামিং এর বিভিন্ন অপারেটর গুলোকে।

প্রোগ্রামিং এ আমরা সাধারনত ৮ ধরনের অপারেটর দেখে থাকি। এগুলো হচ্ছেঃ

১)এরিথমেটিক অপারেটর (Arithmetic Operator)

২)রিলেশনাল অপারেটর (Relational Operator)

৩)লজিকাল অপারেটর (Logical Operator)

৪)এসাইনমেনট অপারেটর (Assignment Operator)

৫)ইনক্রিমেন্ট, ডিক্রিমেন্ট অপারেটর (Increment, Decrement Operator)

৬)কন্ডিশনাল অপারেটর (Conditional Operator)

৭)বিটওয়াইজ অপারেটর (Bitwise Operator)

৮)ইস্পেসিয়াল অপারেটর (Special Operator)

আজেকের আর্টিকেল এ প্রথম ২ টি অপারেটর নিয়ে কথা আলোচনা করব। শুরু করছি এরিথমেটিক অপারেটর দিয়ে।

১)এরিথমেটিক অপারেটর(Arithmetic Operator) :

আগেই বলেছিলাম গণিতের কিছু অপারেটর এর সাথে প্রোগ্রামিং এর কিছু অপারেটর এর তুলনা করব। আসুন তুলনা করা যাক। গণিতের সেই চির চেনা যোগ-বিয়োগ, গুন-ভাগ চিহ্নই হচ্ছে এরিথমেটিক অপারেটর। অর্থাৎ যার দ্বারা আমরা প্রোগ্রামে যোগবিয়োগ করে থাকি। প্রোগ্রামে আমাদের অনেক সময় যোগবিয়োগ করতে হয়, যেমন ধরুন আপনি অনলাইন শপ থেকে কিছু অর্ডার করছেন। আপনি যখন কোন একটা পণ্য শপিং কার্টে যোগ করেন তখন কিন্তু আপনার পূর্বের মূল্যের সাথে নতুন পণ্যর দামও যোগ হয়ে যায় বা আপনি একই পণ্য একাধিক বার কিনতে চাচ্ছেন, তখন সেই পণ্যর মূল্য পণ্য সংখ্যা দিয়ে গুন করে পূর্বের মূল্যর সাথে যোগ হয়ে যায়। আবার ধরুন আপনি একটি পণ্য বাদ দিতে চাচ্ছেন, তখন আগের মূল্য থেকে বাদ দেয়া পণ্যর মূল্য বিয়োগ হয়ে যায়। আবার যদি কোন ভেট(VAT) থাকে তাহলে মোট টাকার একটি অংশ শতকরা হিসেব করে বের করতে হয়। এই যে অপারেশন গুলো যার সাহায্যে করা হচ্ছে তারাই হচ্ছে এরিথমেটিক অপারেটর।আসুন চট করে কিছু sample code দেখে ফেলি।

arithmetic operators

উপরের sample code এর ছবিটিতে বিভিন্ন রকম এরিথমেটিক অপারেটর দেখানো হয়েছে এবং অপারেশন এর ফলে কি ফলাফল আসে তা ডানদিকে কমেন্ট (comment) আকারে দেখানো হয়েছে। প্রথম ৪ টি ফলাফল নিয়ে কারও সংশয় না থাকলেও শেষের ফলাফলটি নিয়ে অনেকই দ্বিধায় ভুগছেন। এটা অস্বাভাবিক কিছু নয়। কারন (%) চিহ্নটিকে আমরা সাধারনত শতকরা সূচক চিহ্ন হিসেবে জানি। কোন কিছুর শতকরা বুঝাতে এটি ব্যাবহার করা হয়। তাহলে এর ফলাফল ১(1) কিভাবে হয়? আসলে প্রোগ্রামিং এ (%) কে বলা হয় মডুলাস অপারেটর (modulus operator)। ভাগশেষ বের করতে এটি ব্যাবহার করা হয়। ১১ কে যদি ২ দ্বারা ভাগ করা হয় তবে ভাগফল হবে ৫ এবং ভাগশেষ ১। একারনে শেষের উদাহরণটিতে ফলাফল ১ এসেছে। (%) কে মডুলো ডিভিশন(modulo division) ও বলা হয়ে থাকে।

রিলেশনাল অপারেটর নিয়ে কথা বলার আগে আসুন জেনে নেই প্রোগ্রামিং এ 0 এবং 1 এর ব্যাবহার বা কি বুঝায়। প্রোগ্রামিং 1 মানে হচ্ছে কোন একটি কন্ডিশন(condition) বা কম্পেরিজন(comparison) সত্য বা true আর 0 মানে হচ্ছে মিথ্যা বা false. এবার রিলেশনাল অপারেটর নিয়ে কথা বলা যাক। রিলেশনাল অপারেটর আমরা কোন কিছু তুলনা(compare) করতে ব্যাবহার করে থাকি। যেমন সমান কিনা, বড় কিনা, ছোট কিনা। আসুন এবার একে একে রিলেশনাল অপারেটর গুলোর সাথে পরিচিত হই।

i) == (Equal) কোন কিছু সমান কিনা তুলনা করতে এটি ব্যাবহার করা হয়। সমান হলে 1 (true) দেখাবে, আর সমান না হলে 0 (false)।

use of ==(equal) operator

উপরের sample code টি লক্ষ্য করুন, প্রথম চেকটি 1 return করেছে। অর্থাৎ চেকটি সত্য বা true, কেননা বামদিকে থাকা 10 এবং ডানদিকে থাকা 10 দুটোই ধনাত্মক পূর্ণ সংখ্যা। যার ফলে এটি 1 return করেছে। আগেই বলেছিলাম যদি কোন কন্ডিশন বা কম্পেরিজন সঠিক হয় তবে এর ফলাফল 1 বা true দেখায়। তাই প্রথম উদাহরণটিতে আমরা ফলাফল 1 দেখতে পাচ্ছি, অর্থাৎ তারা সমান।

এবার দ্বিতীয় উদাহরণটি লক্ষ্য করুন (10 == -10) । বাম এবং ডান উভয় দিকেই 10 থাকা সত্ত্বেও কিন্তু 0 return করেছে। মানে বামদিকের মান এবং ডানদিকের মান সমান নয়। এর কারন হচ্ছে দুই দিকে 10 থাকলেও বামদিকের সংখ্যাটি ধনাত্মক এবং ডানদিকের সংখ্যাটি ঋণাত্মক। যার কারনে কম্পেরিজন সঠিক নয়, তাই ফলাফল হিসেবে 0 return দেখাচ্ছে।

তৃতীয় উদাহরণটি (10==15) নিয়ে আশা করি কোন সংশয় নেই, কারন এখানে স্পষ্ট দেখা যাচ্ছে 15 আর 10 কখনই সমান নয়। 10 এর থেকে 15 বড়।

চতুর্থ উদাহরণটি বর্ণনা করার আগে আসুন স্ট্রিং(string) সম্পর্কে কিছুটা ধারনা নেয়া যাক। String এর বাংলা হল তার বা গুনা। কিন্তু প্রোগ্রামিং এ স্ট্রিং(string) বলতে কতকগুলো বর্ণ, অক্ষর কিংবা চিহ্নের সমষ্টিকে বুঝায়। এবং একে কোটেশন চিহ্ন(“ ”) এর মধ্যে লিখতে হয় যেমনটা উদাহরনে দেখানো হয়েছে। আসুন আরও কিছু উদাহরণ দেখে নেয়া যাক। “ক”, “a”, “A”, “বাংলাদেশ”, “১০ টাকা”, “how are you?” ইত্যাদি এই সবগুলোই স্ট্রিং এর উদাহরণ। স্ট্রিং যে সব সময় কতগুলো বর্ণ, অক্ষর বা চিহ্নের সমষ্টি হবে তা কিন্তু নয়, শুধু একটি বর্ণ বা অক্ষর, কিংবা চিহ্ন অথবা নম্বরও কিন্তু স্ট্রিং হতে পারে। যেমন “১০”, “5”, “আ”, “E” ইত্যাদি। তাহলে বলুন তো একটি বর্ণ বা বর্ণের সমষ্টি কি সংখ্যার সাথে তুলনা করা সম্ভব? তাই চতুর্থ উদাহরণটি 0 return করেছে, কেননা সংখ্যা আর বর্ণ, শব্দ বা বাক্য তুলনা করা সম্ভব না।

পঞ্চম উদাহরণটি (10 == 10.0) নিয়ে হয়ত কারও কারও মনে সংশয় থাকতে পারে। কেননা, বাম এবং ডানদিকে থাকা উভয়ের মানই ১০(10), তারপরও কেন চেকটি false বা 0 হল। হ্যাঁ, আপনি ঠিক ধরেছেন, দুটোর মানই সমান (10). কিন্তু দুটো সংখ্যার ধরন এক নয়। লক্ষ্য করলে দেখতে পারবেন বামদিকে থাকা সংখ্যাটি একটি পূর্ণ সংখ্যা, অপরদিকে ডানদিকের সংখ্যাটি একটি দশমিক সংখ্যা। আর (==) অপারেটরটি শুধুমাত্র তখনই true বা 1 return করবে যখন বাম ও ডানে থাকা সংখ্যা দুটো ধরন,গরন এক কথায় সব দিকে থেকে সমান হবে।

এখন আপনার মনে প্রশ্ন আসতে পারে যে, == অপারেটর দিয়ে কি শুধুই সংখ্যাকে তুলনা করতে পারব নাকি অন্য কিছুও তুলনা করতে পারব। জী হ্যাঁ, আপনি চাইলে বর্ণ, চিন্ন,শব্দ, বাক্য, ধনাত্মক-ঋণাত্মক সংখ্যা, যেকোনো কিছুই তুলনা(compare) করতে পারবেন। নিচের ছবিটি দেখলে আশাকরি পুরোপুরি পরিষ্কার হবেন।

use of ==(equal) operator

ii) !=(Not Equal) এটিও কোন কিছু সমান কিনা তুলনা করতে ব্যাবহার করা হয়। তবে এক্ষেত্রে সমান না হলে 1 (true) দেখাবে, আর সমান হলে 0 (false) শুনতে একটু অদ্ভুত লাগছে? আসলে অনেক সময় আমাদের চেক করতে হয় সমান না হলে কি করব। এই ধরনের কন্ডিশন চেক করতে != ব্যাবহার করা হয়। মনে করুন আপনি অনলাইন শপ থেকে কিছু একটা কিনেছেন। যখন আপনি চেক আউট করবেন তখন আপনি মূল্য পরিশোধের মাধ্যম হিসেবে আপনার কোন এক ব্যাংকের কার্ড নম্বর ব্যাবহার করতে চাচ্ছেন। তারা আপনার দেয়া নম্বরটি অনুযায়ী চেক করে দেখল আপনার মোট মূল্যর সমান টাকা আপনার একাউন্টে আছে কিনা। তাহলে তারা চেকটি কিভাবে করবে? আসুন চট করে এর sample code টি দেখে ফেলি।

if (একাউন্টের টাকার পরিমান != মোট মূল্য) {

ইউজার কে জানাও তার একাউন্টে যথেষ্ট পরিমান টাকা নেই;

} else {

একাউন্ট থেকে মোট মূল্য পরিমান টাকা কেটে নাও;

}

উপরের উদাহরণটি লক্ষ্য করুন, একাউন্টে টাকার পরিমান মোট মূল্যর সমান না হলে কি হবে তার উপর নির্ভর করে আপনাকে পরবর্তী পদক্ষেপ নিতে হচ্ছে। এমন পরিস্তিতিতে আপনি != এর সাহায্য নিতে পারেন। আসুন আরও কিছু উদাহরণ দেখে নেয়া যাক।

use of != (not equal) operator

iii) < (less than) এই অপারেটর এর কাজ হল এর বামে থাকা মান ডানে থাকা মানের চেয়ে ছোট কিনা তা চেক(check) করা। যদি বামদিকে থাকা মানটি ডানদিকে থাকা মানের চেয়ে ছোট হয় তবেই true বা 1 return করবে। আসুন কিছু sample code দেখে নেয়া যাক।

use of < (less than) operator

উপরের sample code টি দেখে হয়ত অনেকের মধ্যে অনেক রকম প্রশ্ন জেগেছে। চলুন দেখে নেয়া যাক আপনার প্রশ্নর উত্তর খুজে পাওয়া যায় কিনা। শুরু করছি প্রথম উধাহরনটি দিয়ে।

প্রথম উধাহরনটি একটি সহজ হিসাব। 10 অবশ্যই 12 থেকে সবসময় ছোট। অর্থাৎ চেকিং(checking) টি সত্য বা true বা 1। যার কারনে এখানে 1 return হয়েছে। ঠিক একই ভাবে দ্বিতীয় ও তৃতীয় উধাহরন যথাক্রমে 1 এবং 0 return করেছে। কারন, আমরা জানি ০ থেকে ছোট যেকোনো সংখ্যাই ঋণাত্মক। তাই কন্ডিশনটি 1 return করেছে। একইভাবে 15 সংখ্যাটি 10 এর থেকে বড়, তাই এখানে 0 return হয়েছে।

চতুর্থ থেকে ষষ্ঠ উধাহরন গুলো দেখার আগে সপ্তম এবং অষ্টম উধাহরন দুটো নিয়ে আলোচনা করা যাক। সপ্তম উধাহরন টিতে বামদিকে থাকা সংখ্যাটি ডানদিকে থাকা সংখ্যার চেয়ে ০.১ (0.1) পরিমান ছোট। অর্থাৎ মানের পার্থক্য অতি ক্ষুদ্র হলেও সেটি চেক হয়। যার কারেন এখানে 1 return করা হয়েছে। শেষের উধাহরন টি লক্ষ্য করুন, আপাত দৃষ্টিতে মনে হতে পারে বাম দিকের সংখ্যাটি ডানদিকের সংখ্যার থেকে ছোট, তারপরও কেন 0 return করেছে। কিন্তু ভালো করে লক্ষ্য করলে বুঝতে পারবেন উভয় সংখ্যার আগে (-) চিহ্নটি রয়েছে। আমরা জানি, ০ থেকে যত বামে যাওয়া যার মান ততই কমে বা ঋণাত্মক হয়। তাহলে -1.258 আর -1.259 এর মধ্যে -1.258 আগে আসে আর -1.259 পরে। তারমানে -1.259 এর থেকে -1.258 বড়। যার কারনে এখানে return হিসেবে আমরা 0(zero) পেয়েছি।

এবার চতুর্থ থেকে ষষ্ঠ উধাহরন গুলোতে ফিরে যাওয়া যাক। আগেই বলেছিলাম কম্পেরিজন (comparison) শুধু যে দুটি সংখ্যার মধ্যে হয় তা না, কম্পেরিজন (comparison) যেকোনো কিছুর মধ্যে হতে পারে। কিন্তু সংখ্যা(number) আর স্ট্রিং(string) এর কম্পেরিজন এর ক্ষেত্রে কিছু ভিন্নতা রয়েছে। স্ট্রিং তুলনা করার সময় স্ট্রিং এ থাকা বর্ণ, সংখ্যা বা চিহ্ন গুলোর ASCII মান, স্ট্রিং এর দৈর্ঘ্য ইত্যাদি চেক করা হয়। যেমন ‘a’ এর ASCII মান হচ্ছে 97 (decimal value)। আবার ‘b’ এর ASCII মান হচ্ছে 98 (decimal value)। একই ভাবে ‘A’ এর ASCII মান হচ্ছে 65(decimal value)। তাহলে আমি যদি ‘a’ আর ‘b’ এর মধ্যে তুলনা করি তাহলে দেখতে পারব ‘a’ এর থেকে ‘b’ বড়। কারন ‘a’ এর ASCII মান 97 আর ‘b’ এর ASCII মান 98 । দুটো স্ট্রিং তুলনা করার জন্য প্রথম স্ট্রিং এর প্রথম অক্ষর এর সাথে দ্বিতীয় স্ট্রিং এর প্রথম অক্ষর এর ASCII মান তুলনা করা হয়। যদি মান সমান হয় তবে পরবর্তী অক্ষরের ASCII মান তুলনা হয়। আর যদি চেকিং করার সময় দুটো স্ট্রিং এর মধ্যে বামদিকের মান বেশী হয় তবে চেকিং সেখানেই থেমে যাবে, পরবর্তী অক্ষর আর চেক করবে না। কেননা আমি ইতোমধ্যে জেনে গিয়েছি যে বামদিকের মান ডানদিকের মানের চেয়ে বেশী। সুতরাং আমার কন্ডিশনটি 0 বা false return করেছে। তাহলে চতুর্থ উধাহরন টির সাথে এতক্ষনের আলোচনা মিলিয়ে দেখা যাক। চতুর্থ উদাহরণটিতে “a fox” আর “a cat” এর মধ্যে তুলনা করা হয়েছে। “a fox” এর “a” এবং “a cat” এর “a” উভয়ের মান সমান। তারমানে হিসাব মত এখানেই আমার কন্ডিশন মিথ্যা বা false হওয়া উচিৎ কেননা এখানে কেউ কারও থেকে ছোট না। তাই নয় কি? কিন্তু আসলে তা হবে না। কেননা সম্পূর্ণ স্ট্রিং টি এখনও চেক করা হয়নি। তাহলে এবার পরের অক্ষর চেক হবে অর্থাৎ “f” এবং “c” এর মধ্যে তুলনা হবে, তাইতো? কিন্তু মজার বেপার হচ্ছে “f” এবং “c” এর মধ্যে তুলনা হবার আগে প্রথম স্ট্রিং এ থাকা “a” এবং “f”(‘a’ ‘f’ox) এর মধ্যে যে ফাকা জায়গাটি আছে তার সাথে দ্বিতীয় স্ট্রিং এ থাকা “a” এবং “c”(‘a’ ‘c’at) এর মধ্যে যে ফাকা জায়গাটি আছে তার সাথে তুলনা হবে। অর্থাৎ দুটি বর্ণ বা দুটি শব্দের মাঝে যে ফাকা(gap/space) জায়গাটি থাকে তারও একটি ASCII মান আছে (32) । তাই “fox” আর “cat” মধ্যে তুলনা হওয়ার আগে এদের তুলনা হবে। তারা সমান হলেও এখনই কন্ডিশন false হচ্ছে না, কেননা পুরো স্ট্রিং টি এখনো চেক করা শেষ হয়নি। এবার “f” এবং “c” এর মধ্যে তুলনা হবে। “f” এর ASCII মান হচ্ছে 102 (decimal value) আর “c” এর ASCII মান হচ্ছে 99 (decimal value). তাহলে 102 এবং 99 এর মধ্যে বড় হচ্ছে 102 যা বামদিকে রয়েছে। সুতরাং কন্ডিশনটি এবার false হয়ে গেল কেননা শর্ত অনুযায়ী বামদিকের মান ডানদিকের মানের চেয়ে ছোট হতে হত। তাহলে আবারো প্রশ্ন আসতে পারে তাহলে তো শর্ত আগেই ভেঙ্গে গেছে কেননা বামদিকে থাকা স্ট্রিং এ “a” এবং ডানদিকে থাকা স্ট্রিং এর “a” সমান, ছোট নয়। তাহলে সেখানেই তো কন্ডিশন false হয়ে যাওয়ার কথা। উত্তরটা দেওয়ার আগে একটা প্রেক্ষাপট চিন্তা করা যাক। মনে করুন আপনি বাজারে ডিম কিনতে গিয়েছেন, আপনি প্রথম দোকানে গিয়ে ডিম পেলেন না, তাহলে কি আপনি ফিরে আসবেন নাকি পরের দোকানে খোঁজ করবেন? এবার ধরুন, আপনি পরের দোকানে ডিম পেয়ে গেলেন তাহলে কি আপনি আর কোন দোকানে ডিম এর খোঁজ করবেন? অবশ্যই করবেন না কেননা আপনি ইতোমধ্যে ডিম পেয়ে গেছেন, আপনার আর জানার দরকার নাই আর কোন দোকানে ডিম আছে নাকি নাই। ঠিক একই ভাবে বামদিকের স্ট্রিং এর সাথে ডানদিকের স্ট্রিং এর প্রথম অক্ষরের(“a”) মিল পেয়েছেন, কিন্তু আপনি জানেন না পরের অক্ষর টি কি হবে, তাই আপনাকে চেক করে যেতে হবে, চেক করার সময় যদি কোথাও বামদিকের মান ডানদিকের মানের চেয়ে বেশী হয় তবেই থামতে হবে অন্যথায় নয়। এবার মনে আর একটি প্রশ্ন উঁকি দিতে পারে, যদি চেক করে যেতে যেতে দেখি দুটোই সমান তাহলে? হ্যাঁ, যদি এমন হয় তাহলে আপনি নিঃসন্দে বলে দিতে পারেন কন্ডিশনটি false কেননা চেক করার জন্য আর কোন কিছু অবশিষ্ট নেই, তাই আপনি নির্দ্বিধায় বলতে পারেন কন্ডিশনটি false যেমনটা ষষ্ঠ উদাহরনে দেখানো হয়েছে (“a cat” < “a cat”) ।

iv) >(greater than) এই অপারেটরটিও (< less than) অপারেটর এর মত কাজ করে। পার্থক্য হচ্ছে এটি চেক করে বামের মান ডানদিকের মানের চেয়ে বড় কিনা। অন্যভাবে বললে এটি (< less than) এর ঠিক উল্টো। এবং উপরের আলোচনার সবটুকুর সাথে এর মিল রয়েছে। চলুন উদাহরনের মাধ্যমে আরও একটু পরিষ্কার হয়ে আসি।

example of greater than(>) operator

প্রথম উদাহরণটি দেখেই আশা করি বুঝে গেছেন (>) কি কাজ করে। বামদিকে থাকা 15 ডানদিকে থাকা 12 এর থেকে বড়। যার কারনে এটি 1 return করেছে। একই ভাবে বামে থাকা 0 ডানে থাকা -1 এর থেকে বড়। তাই এটিও 1 return করেছে। বামের 10 ডানদিকের 15 এর থেকে ছোট, তাই এখানে কন্ডিশনটি মিথ্যা বা false। তাই এখানে ০ return হয়েছে। স্ট্রিং এর ক্ষেত্রেও একই নিয়ম। চতুর্থ উদাহরনে বামদিকের “a fox” এর “f” ডানদিকে থাকা “a cat” এর “c” এর চেয়ে বড়। কেননা “f” এর ASCII মান হচ্ছে 102 (decimal value) আর “c” এর ASCII মান হচ্ছে 99 (decimal value). তাহলে 102 এবং 99 এর মধ্যে বড় হচ্ছে 102 যা বামদিকে রয়েছে। যার কারনে কন্ডিশনটি সত্য বা true হিসেবে 1 return করেছে।

v) <=(less than or equal) নাম দেখেই বুঝতে পারছেন যে (< less than) অপারেটর এর সাথে এর কোন সম্পর্ক রয়েছে। হ্যাঁ, আপনি ঠিক ধরেছেন। এই অপারেটরটির চারিত্রিক বৈশিষ্ট্য (< less than) এর অপারেটর এর মতই, কিন্তু ছোট কিনা চেক করার সাথে সাথে এটি চেক করবে বামদিকের মান ডানদিকের মানের সমান কিনা। অন্যভাবে বললে “ বামদিকের মান কি ডানদিকের মানের চেয়ে ছোট বা সমান কিনা ”। অর্থাৎ এবার যদি সমান হয় তাহলে সে false(0) return না করে true(1) return করবে। আসুন কিছু sample code দেখে নেই।

example of less than or equal(<=) operator

প্রথম উদাহরণটি 1 return করেছে, কারন বামে থাকা 12 ডানদিকে থাকা 12 ছোট না হলেও সমান, তাই এখানে 1 return করেছে। “a cat” এর উদাহরণটি মনে আছে? যখন < অপারেটর দিয়ে চেক করেছিলাম তখন সেটি 0 return বা false হয়েছিল। কিন্তু এখন সেই একই উদাহরণ 1 return করেছে। কারন, এবার মান উভয়ের সমান। আর তৃতীয় উদাহরণটি স্বাভাবিক ভাবেই 0 return করেছে, কারন 15 কখনই 10 এর থেকে ছোট বা সমান না

vi) >= (greater than or equal) আশা করি নাম দেখেই বুঝে ফেলেছেন এর কাজ কি হতে পারে। তাই চলুন সরাসরি উদাহরনে চলে যাই।

example of greater than equal (>=) operator

উভয় দিকে 12 থাকা সত্ত্বেও 1 return করেছে, কারন 12 , 12 এর থেকে বড় না হলেও সমান। তাই 1 return করেছে। একই ভাবে বামের “a cat” ডানদিকের “a cat” এর থেকে বড় না হলেও সমান। সুতরাং এটিও 1 return করেছে।

আশা করি এতক্ষণ যা আলোচনা করেছি তা আপনাদের কাজে আসবে। অপারেটর এর পর্ব অপেক্ষাকৃত বড় হয়ে যাওয়ায় এটি কে ৩ টি ভাগে ভাগ করেছি। দ্বিতীয় পর্ব নিয়ে শিগ্রই হাজির হবো আশা করি। ভালো লাগলে share করতে ভুলবেন না। আর যদি কোন প্রশ্ন থাকে তাহলে কমেন্ট করে জানাতে পারেন। ধন্যবাদ এতক্ষণ সাথে থাকার জন্য। Happy Coding.

A software engineer from Bangladesh.

A software engineer from Bangladesh.