মত একটি নির্মাণ x = x++;
ইঙ্গিত দেয় আপনি সম্ভবত ভুল বোঝাবুঝি ++
অপারেটর কি করে:
// original code
int x = 7;
x = x++;
++
অপারেটর অপসারণের উপর ভিত্তি করে একই জিনিসটি করতে এটি পুনরায় লিখুন :
// behaves the same as the original code
int x = 7;
int tmp = x; // value of tmp here is 7
x = x + 1; // x temporarily equals 8 (this is the evaluation of ++)
x = tmp; // oops! we overwrote y with 7
এখন, আসুন এটি করতে পুনরায় লিখুন (আমি যা মনে করি) আপনি যা চেয়েছিলেন:
// original code
int x = 7;
x++;
তনিমা কিছু এখানে আছে ++
অপারেটর মডিফাই পরিবর্তনশীলx
, যেমন একটি অভিব্যক্তি অসদৃশ x + x
, যা একটি int- এ মান নির্ণয় কিন্তু ছেড়ে পরিবর্তনশীল হবে x
নিজেই অপরিবর্তিত। সম্মানজনক for
লুপ মত একটি নির্মাণ বিবেচনা করুন :
for(int i = 0; i < 10; i++)
{
System.out.println(i);
}
i++
সেখানে লক্ষ্য করুন ? এটা একই অপারেটর। আমরা এই for
লুপটি আবার লিখতে পারি এবং এটি একই আচরণ করে:
for(int i = 0; i < 10; i = i + 1)
{
System.out.println(i);
}
আমি ++
বেশিরভাগ ক্ষেত্রে বৃহত্তর অভিব্যক্তিতে অপারেটরটি ব্যবহার করার বিরুদ্ধেও সুপারিশ করি । সূক্ষ্মতার কারণে যখন এটি প্রাক-বনাম পোস্ট-ইনক্রিমেন্টে ( ++x
এবং x++
যথাক্রমে) আসল পরিবর্তনশীলটি সংশোধন করে , সূক্ষ্ম বাগগুলি সনাক্ত করা খুব সহজ যেগুলি ট্র্যাক করা কঠিন।
int x = 7; x = ++x;
অবশ্যই এটি এখনও ভয়াবহ কোড, আপনাকে পুনরায় নিয়োগের দরকার নেই।int x = 7; x++;
যথেষ্ট।