- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-১] :: java কি? আসুন জানি জাভার ইতিহাস
- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-২] :: জাভাতে এমন কি আছে যে জন্য আপনি জাভা কে পছন্দ করবেন?
- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৩] :: আসুন শিখি hello java প্রোগ্রাম আর মেইন মেথড ডিক্লেয়ারের কিছু নিয়ম
- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৪] :: জেনে নিই জাভা প্রোগ্রাম কম্পাইল এবং রান করার সময় আসলে ভিতরে কি ঘটে আর সাথে প্যাথ সিলেকশনও
- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৫] :: jre, jdk এবং jvm কি? এবং jvm এর বিস্তারিত বর্ণনা
- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৬] :: চলুন জেনে নিই জাভার ভেরিয়েবল এবং ডাটা টাইপ যা না জানলেই নয়
- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৭] :: দেখে নিন জাভার অপারেটরগুলি আর আসুন করি প্রোগ্রামিং
- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৮] :: আসুন জেনে নিই if, if else, if-else-if ladder এবং switch সম্পর্কে বিস্তারিত
- আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৯] :: জাভাতে কিভাবে ব্যবহার করবেন while loop এবং Do while loop
আস সালামু আলাইকুম, আশা করি সবাই ভাল আছেন। আজকের বিষয় আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৭] :: দেখে নিন জাভার অপারেটরগুলি আর আসুন করি প্রোগ্রামিং। আবারো চলে এলাম আপনাদের মূল্যবান সময় থেকে কিছুটা সময় ছিনিয়ে নিতে। কি করবো বলেন? ২৪ঘন্টাকে ২৪মিনিট মনে হয়। এখন যদি আপনাদের কাছ থেকে কিছুটা সময় ছিনিয়ে নিতে পারি তাহলে সেটাই তো আমার লাভ,তাই না??
জানি কেউ বুঝেন নি আসলে আমি যেটা বুঝাতে চেয়েছি। মানে এই সংক্ষিপ্ত সময়ে আপনাদের জন্য কিছুটা সময় দিয়ে এমন কিছু রেখে যেতে চাচ্ছি, যেন আমাকে কিছু মানুষ আজীবন মনে রাখে। আর তাই জাভা নিয়ে লিখতে শুরু করেছি। কারণ এই ল্যাংগুয়েজ অনেকেই শিখতে চায়।কিন্তু ভয় পায়। আসলে আপনি যতটা কঠিন ভাবছেন ঠিক ততটা কঠিন জিনিস না এটা। আর মনে রাখবেন যে, জিনিস যত কঠিন তার মূল্যটাও তত বেশিই হয়। যেমন, সোনা নষ্ট হয় না। তাই অন্যান্য ধাতু থেকে এর দামও অনেক বেশি। ঠিক তেমনি জাভাও শিখতে কিছুটা কঠিন তাই সবাই শিখবে না,আর আপনি শিখে ফেললেই আপনার জ্ঞানের মূল্যও অনেক বেড়ে যাবে। এই লাইটের যুগেও কিছু মানুষ আপনাকে হারিকেন দিয়ে খুঁজবে। জাভা শিখলে কি লাভ সেটা হয়ত এখন সেইভাবে বুঝবেন না যদিও প্রথম দিকে এর প্রয়োজনীয়তা নিয়ে কিছু কথা বলেছি । সময় কিন্তু সামনে । আপনাকে নিয়েই স্বপ্ন দেখতেছে দেশ। তাই চলুন জাভা শিখি আর দেশের সফটওয়্যার বিভাগকে এগিয়ে নেয়ার চেষ্টা করি।
তো আজকে আমি আপনাদের সাথে অপারেটর নিয়ে আলোচনা করবো। অপারেটর বলতে আপনি কি বুঝেন? সাধারণভাবেই দেখুন যে, আমরা কম্পিউটার অপারেটর কাকে বলে? যে কম্পিউটার চালায় তাকেই আমরা কম্পিউটার অপারেটর বলি। প্রোগ্রামিং এর ক্ষেত্রেও ঠিক তাই। যেমন, ধরুন “+”(প্লাস চিহ্ন) এটা দুইটি সংখ্যার মধ্যে দিলে সে সংখ্যাগুলোকে যোগ করে দেয়। তাই + একটি অপারেটর। ঠিক এমনি ভাবে জাভায় বেশ কিছু অপারেটর রয়েছে। এরকম আরও অনেকগুলো অপারেটর রয়েছে।
চলুন জানি অপারেটরগুলোর শ্রেনীবিভাগ
জাভাতে বিভিন্ন ধরণের অপারেটর রয়েছে। এগুলো হলঃ
- ইউনারি অপারেটর
- অ্যারিথম্যাটিক অপারেটর
- শিফট অপারেটর
- রিলেশনাল অপারেটর
- বিট উয়াইশ অপারেটর
- লজিক্যাল অপারেটর
- টার্নারি অপারেটর
- এসাইনমেন্ট অপারেটর
জাভা অপারেটরগুলোর অগ্রগন্যতা বা প্রাধান্য
জাভা অপারেটর গুলোর অগ্রগণ্যতা বলতে একটি স্ট্যাটমেন্টে একাধিক অপারেটর থাকলে কোন অপারেটরটি আগে আর কোনটি পরে অপারেশনে যাবে তার ধারাবাহিকতাকেই অগ্রগণ্যতা বলা হয়। নিচে একটি অগ্রগন্যতার টেবিল দেয়া হচ্ছে। যেই অপারেটর আগে তার অগ্রগণ্যতা আগে। আর যেটি পরে সেটার অগ্রগণ্যতাও পরে। তো চলুন দেখে নিই…
Operator Type | Category | Precedence |
---|---|---|
Unary | postfix | expr++ expr-- |
prefix | ++expr --expr +expr -expr ~ ! |
|
Arithmetic | multiplicative | * / % |
additive | + - |
|
Shift | shift | << >> >>> |
Relational | comparison | < > <= >= instanceof |
equality | == != |
|
Bitwise | bitwise AND | & |
bitwise exclusive OR | ^ |
|
bitwise inclusive OR | | |
|
Logical | logical AND | && |
logical OR | || |
|
Ternary | ternary | ? : |
Assignment | assignment | = += -= *= /= %= &= ^= |= <<= >>= >>>= |
চলুন ইউনারি অপারেটর এর একটি উদাহারণ দেখে নিই তাহলেই বুঝতে পারবেন খেলা… যারা সি/সি++ পড়েছেন তারা সেগুলো আগে থেকেই জানেন । এরপরও যেন ভুলে না যান তাই আর কি আবার শেয়ার করলাম।যারা সি/সি++ পড়েন নি। তারা দয়া করে বেসিক ধারণা নিয়ে জাভাতে আসুন।
যাইহোক চলুন উদাহারণগুলো দেখিঃ
class OperatorExample{
public static void main(String args[]){
int x=10;
System.out.println(x++);//10 (11)
System.out.println(++x);//12
System.out.println(x--);//12 (11)
System.out.println(--x);//10
}
}
আউটপুটঃ
10
12
12
10
কিছু না শুধু ইউনারি অপারেটর ব্যবহার করেছি আর প্রিন্ট করেছি। x এর মান ১০ নিয়েছি। তাই প্রথমে ১০ প্রিন্ট করবে। যেহেতু প্রিন্ট করার কাজ শেষ এবং পোস্ট ইঙ্ক্রিমেন্ট ইউনারি অপারেটর আছে তাই অটোমেটিক এক বেড়ে যাবে এবং x এর মান হবে ১১। কিন্তু আমরা x এর মান প্রিন্ট সরাসরি প্রিন্ট করি নি। তাই আবার যেহেতু প্রি ইঙ্ক্রিমেন্ট ব্যবহার করেছি মানে ++x তাই আগে x এর মান ১১থেকে ১২ হবে এরপর ১২ প্রিন্ট করবে। মানে কি বুঝলেন? পোষ্ট ইঙ্ক্রিমেন্ট(x++) হলে x এর মান কোনো কাজ একবার শেষ হওয়ার পর বাড়বে । আর প্রি ইনক্রিমেন্ট হলে আগে x এর মান ১ বাড়বে এরপর প্রিন্ট করবে।
ঠিক একইভাবে ডিক্রিমেন্ট ও হবে। প্রথমে (x–) প্রিন্ট করা হয়ছে। যেহেতু পোস্ট ইনক্রিমেন্ট তাই আগে প্রিন্ট হবে ১২ । এরপর x এর মান ১ কমবে। কমার পর যেহেতু আবার প্রি ইনক্রিমেন্ট আছে (–x) তাই x এর মান আবারও ১ কমবে এবং ১০ প্রিন্ট করবে।
যারা এখনও বুঝেন নি, তারা দয়া করে প্রোগ্রাম টি আপনার কম্পিউটারে রান করান। এরপরও না বুঝলে প্রয়োজনে উপরের লাইনগুলো ১০বার পড়ুন। কিন্তু অনুরোধ না বুঝে স্কিপ করে যাবেন না। যদি বলেন পরে বুঝে নিবো। তাহলে আর কখনো বুঝা হবে না। কারণ আমিও একজন ছাত্র। পরে পরে করতে করতে কোন দিক দিয়ে যে, সেমিস্টার শেষ হয়ে যায় সেটাই টের পাই না।
নিচের উদাহারণ দেখলে ইউনারি অপারেটর আরও ক্লিয়ার হয়ে যাবে।
- class OperatorExample{
- public static void main(String args[]){
- int a=10;
- int b=10;
- System.out.println(a++ + ++a);//10+12=22
- System.out.println(b++ + b++);//10+11=21
- }
- }
এইবারের খেলা টা একটু মজার খেলা। দেখুন উপরে কি ঘটনা ঘটলো… ভয় পাবার কিছু নেই । আমি আছি তো আপনার সাথে। আপনিও খেলুন। আমি বুঝিয়ে দেয়ার চেষ্টা করছি…
লাইন নাম্বার ৫ এ যাই প্রথমেই। আগেই বলে দিচ্ছি যারা নতুন তাদের জন্য। উপরের লাইন নাম্বারগুলো কিন্তু ভুল করেও লিখবেন না। ঐটা netbin বা eclips বা notepad++ এর কোড লেখার উইন্ডোতে কিন্তু দেয়া থাকে।
প্রথমে আমরা a এর মান ১০ নিয়েছি। এরপর ৫নাম্বার লাইনে দেখুন পোস্ট ইনক্রিমেন্ট আছে। মানে কাজ শেষ করার পর ১ বাড়বে। কিন্তু প্রিন্ট লাইনে দেখা গেল ইনক্রিমেন্টের পর এরিথম্যাটিক এডিটিভ অপারেটর +(প্লাস) দেয়া আছে। তার মানে পূর্বে যে ১০ ছিল তার প্রিন্ট করার দরকার নেই। কিন্তু যেহেতু এডিটিভ + অপারেটর আছে তাই প্লাস চিহ্নের ডান পাশে যাওয়ার পর ১ইনক্রিমেন্ট হয়ে ১১হয়ে গেছে। তার মানে বাম পাশে রয়েছে ১০। আর ডানপাশে গিয়ে হয়ে গেছে ১১।
ডান পাশে আবার যেহেতু প্রি ইনক্রিমেন্ট হয়েছে মানে a এর মান ১১ছিল এখন যেহেতু প্রি ইনক্রিমেন্ট তাই আগেই ১ বেড়ে ১২ হয়ে যাবে। তাহলে ডানপাশের ++a এর মান ১২।
এবার বাম+ডান=১০+১২= ২২
আশা করি এই দুইটি উদাহারণের মাধ্যমে ইউনারি অপারেটর কিছুটা হলেও আপনারা বুঝতে পেরেছেন। আজ আর আপনাদের মাথা খারাপ করতে চাই না। আজ এ পর্যন্তই। আর একটা কথা আমি যেহেতু একটা মানুষ তাই লিখতে গিয়ে কোথাও ভুল বা স্পেলিং মিস্টেক হতে পারে। যদি আপনার মনে হয় কোথাও ভুল করে ভুল লিখে ফেলেছি তাহলে অবশ্যই ধরিয়ে দিবেন। এতে আমি কৃতজ্ঞ থাকবো। সাথে সবার উপকার হবে।
আজ আর বাড়তি কথা বলবো না। দেখা হবে পরের টিউনে।
ততদিন পর্যন্ত ভাল থাকুন,সুস্থ থাকুন, প্রযুক্তিকে ভালবাসুন আর প্রযুক্তির সাথেই থাকুন।
আল্লাহ হাফিজ
order generic lipitor 40mg order lipitor 40mg sale lipitor 40mg drug
lipitor 80mg usa lipitor 80mg cost lipitor 10mg price
glucophage usa – order glucophage 1000mg pill brand lincomycin
glucophage us – buy generic cipro over the counter lincocin 500mg without prescription
retrovir 300 mg drug – allopurinol 300mg drug cost allopurinol
retrovir 300mg drug – allopurinol 300mg over the counter
buy cheap clozaril – buy altace 10mg pill pepcid buy online
buy clozaril without a prescription – buy quinapril 10mg order famotidine 40mg without prescription
seroquel medication – bupropion pills purchase eskalith generic
quetiapine 50mg usa – cost bupron SR buy generic eskalith over the counter
anafranil cheap – buy celexa 40mg for sale sinequan 75mg price
buy atarax for sale – nortriptyline 25 mg brand buy amitriptyline
hydroxyzine 25mg over the counter – buspar 10mg generic order endep pills
buy augmentin 1000mg without prescription – linezolid 600mg sale cipro 1000mg brand
generic augmentin 375mg – zyvox online buy cipro online
buy amoxicillin tablets – buy amoxil pill purchase ciprofloxacin
buy generic amoxicillin online – purchase axetil pills buy ciprofloxacin 1000mg
clindamycin usa – order cefixime 100mg sale buy cheap chloramphenicol
clindamycin uk – generic cefpodoxime buy chloromycetin pills
azithromycin ca – order floxin 400mg generic ciplox price
generic azithromycin 500mg – buy ciplox 500 mg sale order ciprofloxacin 500mg generic