প্রথম, কিছু ব্যাকগ্রাউন্ড: আমি একজন আইটি শিক্ষক-প্রশিক্ষণ এবং আমি জাভা বুলিয়ান অপারেটরদের আমার দশম শ্রেণির ক্লাসে পরিচয় করানোর চেষ্টা করছি। আমার শিক্ষক-পরামর্শদাতা আমি প্রস্তুত একটি কার্যপত্রকটি দেখেছি এবং মন্তব্য করেছি যে আমি তাদের কেবল একটি একক & বা ব্যবহার করতে পারি অপারেটরদের বোঝাতে, কারণ তারা "একই কাজ করে"।
আমি & এবং & এর মধ্যে পার্থক্য সম্পর্কে অবগত।
এবং "বিট-টুইডলিং" সম্পাদন করার জন্য পূর্ণসংখ্যার মধ্যে ব্যবহারের উদ্দেশ্যে তৈরি বিটওয়াস অপারেটর।
&& হ'ল শর্তসাপেক্ষ অপারেটর যা বুলিয়ান মানগুলির মধ্যে ব্যবহারের জন্য উদ্দিষ্ট।
এই অপারেটররা সর্বদা "একই জিনিসটি করে না" এই বিষয়টি প্রমাণ করার জন্য আমি একটি উদাহরণ খুঁজে বের করেছিলাম যেখানে বুলিয়ান মানগুলির মধ্যে বিটওয়াইজ ব্যবহার করা ত্রুটি ঘটায়। আমি এই উদাহরণ খুঁজে পেয়েছি
boolean bitwise;
boolean conditional;
int i=10, j=12;
bitwise = (i<j) | ((i=3) > 5); // value of i after oper: 3
System.out.println(bitwise+ " "+ i);
i=10;
conditional = (i<j) || (i=3) > 5 ; // value of i after oper: 10
System.out.println(conditional+ " "+ i);
i=10;
bitwise = (i>j) & (i=3) > 5; // value of i after oper: 3
System.out.println(bitwise+ " "+ i);
i=10;
conditional = (i>j) && (i=3) > 5; // value of i after oper: 10
System.out.println(conditional+ " "+ i);
এই উদাহরণটি দেখায় যে যদি মানটির প্রকাশের দ্বিতীয়ার্ধে পরিবর্তন করতে হয়, তবে এটি ফলাফলের মধ্যে পার্থক্য সৃষ্টি করতে পারে, যেহেতু বিটওয়াইজ আগ্রহী অপারেটর, শর্তসাপেক্ষে একটি শর্ট সার্কিট হিসাবে আচরণ করে (দ্বিতীয়টি মূল্যায়ন করে না) অর্ধেক, যদি প্রথমার্ধটি && এর ক্ষেত্রে মিথ্যা হয় এবং ||) এর ক্ষেত্রে সত্য।
এই উদাহরণ সহ আমার একটি সমস্যা আছে। আপনি তুলনা করার সাথে সাথে কেন কোনও মান পরিবর্তন করতে চান? এটি কোড করার মতো শক্ত উপায় বলে মনে হচ্ছে না। আমি আমার প্রোডাকশন কোডের একক লাইনে একাধিক অপারেশন করতে সর্বদা বিরক্ত হয়েছি। দেখে মনে হচ্ছে এটি "কোডিং কাউবয়" এর মতো যা তার কোডটির রক্ষণাবেক্ষণের বিষয়ে কোনও বিবেকের সাথে নেই। আমি জানি যে কিছু ডোমেন কোডে যতটা সম্ভব কমপ্যাক্ট হওয়া দরকার, তবে অবশ্যই এটি সাধারণভাবে একটি দুর্বল অনুশীলন?
আমি && এবং এর ব্যবহারকে উত্সাহিত করার জন্য আমার পছন্দটি ব্যাখ্যা করতে পারি ওভার এবং এবং | কারণ এটি সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের একটি স্বীকৃত কোডিং কনভেনশন ।
তবে কেউ কি আমাকে আরও উন্নততর, এমনকি বাস্তব-জগতের উদাহরণ দিতে পারেন, শর্তাধীন অভিব্যক্তিতে বিটওয়াস অপারেটর ব্যবহারের উদাহরণ?