ওরাকল সার্টিফিকেট অ্যাসোসিয়েট জাভা এসই 8 প্রোগ্রামার 1 পরীক্ষার জন্য প্রস্তুতি নিয়ে, আমি অফিসিয়াল স্টাডি গাইডের ত্রৈমাসিক অভিব্যক্তি সম্পর্কে নিম্নলিখিত অনুচ্ছেদে এসেছি:
টেরনারী এক্সপ্রেশন মূল্যায়ন
জাভা 7-এর হিসাবে, রানটাইমের সময় টেরিনারি অপারেটরের ডান হাতের এক্সপ্রেশনগুলির মধ্যে একটিরই মূল্যায়ন করা হবে। শর্ট-সার্কিট অপারেটরগুলির মতো একই উপায়ে, যদি কোনও টার্নারি অপারেটরের দুটি ডান হাতের এক্সপ্রেশন একটি পার্শ্ব প্রতিক্রিয়া সম্পাদন করে, তবে এটি রানটাইমে প্রয়োগ করা যাবে না। আসুন নীচের উদাহরণ সহ এই নীতিটি বর্ণনা করুন: [...]
এটি বলে যে দুটি এক্সপ্রেশনগুলির মধ্যে একটিরই মূল্যায়ন করা হয়, নিম্নলিখিত উদাহরণ সহ প্রদর্শিত:
int y = 1;
int z = 1;
int a = y < 10 ? y++ : z++;
এখানে, কেবল y
ইনক্রিমেন্ট, তবে z
যেমনটি আপনি প্রত্যাশা করতেন তেমনটি হয় না।
আমি যেদিকেই হোঁচট খাচ্ছি তা হ'ল অনুচ্ছেদের শুরু (হলুদ বর্ণিত) যেখানে এটি "জাভা 7, ..." হিসাবে লেখা আছে। আমি জাভা 1.6 এর সাথে একই কোডটি পরীক্ষা করেছি এবং আচরণের মধ্যে আমি কোনও পার্থক্য খুঁজে পাচ্ছি না। আমি জাভা 1.6 কেবলমাত্র অনুচ্ছেদে প্রদত্ত তথ্য থেকে উভয় এক্সপ্রেশনকে মূল্যায়ন করবে বলে আশা করেছি। "জাভা 7, ..." দিয়ে তারা কী বলতে চেয়েছিল তার কি কারও ধারণা আছে?
সম্পাদনা: বিভ্রান্তি এড়ানোর জন্য: এটি প্রশ্নটিতে ফোটে, যেহেতু তারা 'As of Java 7' লেখেন, তখন জাভা 6 থেকে জাভা 7-এ স্যুইচ করার সময়, টের্নারি অপারেটর সম্পর্কে কি কিছু পরিবর্তন হয়েছিল?