মত একটি নির্মাণ 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++;যথেষ্ট।