ধরো তোমাকে একটা ছোট অংক কষতে দেয়া হলো এরকম: 12 + 4 X 8
এটার রেজাল্ট তুমি অবশ্যই 128 বলবে না। এটার রেজাল্ট তো 44। কারণ তুমি জানো যে আগে গুণের কাজ হবে তারপর যোগের কাজ হবে।
খুব সহজভাবে এটাই হচ্ছে Operator Precedence । অর্থাৎ অপারেটরের প্রাধান্য বা কম্পিউটার প্রোগ্রামে একাধিক অপারেটর ব্যবহার করা হলে কোন অপারেটরের কাজ আগে হবে আর কোনটার কাজ পরে হবে।
একটা উদাহরণ দেখি:

আউটপুট:

আউটপুট:
এখানে আগে * অপারেটরের কাজ হয়েছে তারপর + অপারেটরের কাজ হয়েছে।
এরকম প্রোগ্রামে কোন অপারেটরের কাজ আগে হবে আর কোনটার কাজ পরে হবে তা নিচে দেয়া হলো।
|
Precedence |
Operator |
Type |
Associativity |
|
15 |
() |
Parentheses |
বাম থেকে ডানে |
|
14 |
++ |
Unary post-increment |
ডান থেকে বামে |
|
13 |
++ |
Unary pre-increment |
ডান থেকে বামে |
|
12 |
* |
Multiplication |
বাম থেকে ডানে |
|
11 |
+ |
Addition |
বাম থেকে ডানে |
|
10 |
<< |
Bitwise left shift |
বাম থেকে ডানে |
|
9 |
< |
Relational less than |
বাম থেকে ডানে |
|
8 |
== |
Relational is equal to |
বাম থেকে ডানে |
|
7 |
& |
Bitwise AND |
বাম থেকে ডানে |
|
6 |
^ |
Bitwise exclusive OR |
বাম থেকে ডানে |
|
5 |
| |
Bitwise inclusive OR |
বাম থেকে ডানে |
|
4 |
&& |
Logical AND |
বাম থেকে ডানে |
|
3 |
|| |
Logical OR |
বাম থেকে ডানে |
|
2 |
? : |
Ternary conditional |
ডান থেকে বামে |
|
1 |
= |
Assignment |
ডান থেকে বামে |
এখানে Precedence কলামে দেখো সর্ব উপরে আছে 15 আর সর্ব নিচে আছে 1. এখানে 15 এর প্রাধান্য সবচে’ বেশি এবং 1 এর প্রাধান্য সবচে’ কম।
আর একদম ডান পাশের কলামে দেখো “বাম থেকে ডানে” বা “ডান থেকে বামে” লেখা আছে। এর অর্থ হলো কোন একটা কোডে যদি এই অপারেটর টাইপের সবগুলো অপারেটরই থাকে বা একাধিক অপারেটর থাকে তাহলে বাম থেকে ডানে বা ডান থেকে বামে প্রোগ্রাম কাজ করবে। যেমন ছোট একটা উদাহরণ দেখো:
এটি 11 নাম্বার Precedence এর জন্য

আউটপুট:
আউটপুট:

আউটপুট:
এখানে প্রোগ্রাম প্রথমে 12 থেকে 4 বিয়োগ করেছে তারপর ফলাফলের সাথে 9 যোগ করেছে। তার অর্থ হলো এখানে – এবং + দুইটি অপারেটর ব্যবহৃত হয়েছে। যেগুলো একই Precedence এর। এবং Associativity তে বলা আছে বাম থেকে ডানে প্রোগ্রাম কাজ করবে। সুতরাং 12 থেকে 4 বিয়োগ করেছে তারপর ফলাফলের সাথে 9 যোগ করেছে।
এখন দেখো এই উদাহরণে ছোট্ট একটা পরিবর্তন করি।

আউটপুট:
4 এবং 9 কে আমরা একটা Parentheses এর মধ্যে নিয়েছি।
এবং আউটপুট দেখো:

আউটপুট:
কেন এমন হলো?
দেখো Parentheses এর Precedence হচ্ছে 15 অর্থাৎ এর প্রাধান্য সবার চেয়ে বেশি। যার কারণেই প্রোগ্রাম প্রথমে Parentheses এর কাজ করেছে অর্থাৎ 4 এবং 9 কে যোগ করেছে তারপর ফলাফল থেকে 12 কে বিয়োগ করে আউটপুট এসেছে -1।
Precedence টেবিলে বেশি কিছু অপারেটর দেখছো তোমার অপরিচিত। চিন্তিত হবার কিছু নেই। ওই অপারেটরগুলো নিয়ে আমরা আলোচনা করি নি কারণ সেগুলো খুব কম সময়ই তোমাদের কাজের ক্ষেত্রে লাগবে। আর অনেক পরে হয়তো যখন লাগবে তখন তোমরা এমনিতেই শিখে নিতে পারবে আমার বিশ্বাস।