উত্তর:
একে কন্ডিশনাল অপারেটর (যা একটি টেরিনারি অপারেটর ) বলা হয়।
এটা তোলে আকারে রয়েছে: condition
? value-if-true
: "তখন" এবং "অন্য" হিসাবে value-if-false
ভাবেন ।?
:
আপনার কোড সমান
if (max != 0)
hsb.s = 255 * delta / max;
else
hsb.s = 0;
addition
একটি বাইনারি অপারেটর যা পূর্ববর্তী এবং নীচের এক্সপ্রেশনগুলিতে পরিচালনা করে (যেমন 1 + 2 প্লাস 1 এবং 2 তে চালিত হয়), বা প্রত্যাখ্যান একটি অ্যানারি অপারেটর (যেমন -x যেখানে x এর মান অবহেলিত)।
যখন বন্ধনীর সাহায্যে নিম্নরূপ লেখা হবে তখন এটি সম্ভবত কিছুটা পরিষ্কার হয়:
hsb.s = (max != 0) ? (255 * delta / max) : 0;
এটি যা করে তা হ'ল প্রথম বন্ধনীগুলির অংশটি মূল্যায়ন করা। ফলাফল যদি সত্য হয় তবে অংশটি পরে? এবং এর আগে: ফিরে আসবে। যদি এটি মিথ্যা হয়, তবে যা অনুসরণ করে: ফিরে আসে।
? :
এটা কি টার্নারি অপারেটর নয়?
var x= expression ? true:false
: জন্য একটি সংক্ষিপ্ত সরাসরি অবস্থা else {}
এবং if(){}
সমস্যা। সুতরাং আপনার কোডটি এটিকে বিনিময়যোগ্য:
if(max != 0){
hsb.s = 225 * delta / max
}
else {
hsb.s = 0
}
এই বিষয়ে সতর্কতা অবলম্বন করুন। এ -1 সত্য-এর কাছে মূল্যায়ন করে যদিও -1! = সত্য এবং -1! = মিথ্যা। বিশ্বাস করুন, আমি এটা ঘটতে দেখেছি।
সুতরাং
-1? "সত্য পক্ষ": "মিথ্যা পক্ষ"
"সত্য পক্ষ" মূল্যায়ন
Infinity
(ভাগ করে শূন্যের কারণে)।