کاربرد ? در اسکریپت


در کد نویسی (به هر دو زبان #سی_شارپ و #جاوا اسکریپت) حالتی از شرط ها وجود دارد که می توان با ? (علامت سوال) ایجاد کرد. به علت اینکه این نوع برنامه نویسی خیلی باعث کاهش کدها می‌شود، آن را در این پست توضیح می‌دهیم.


?در برنامه نویسی گاهی اوقات مقدار دهی یک متغیر به مثبت یا منفی بودن یک شرط وابسته است، برای فهم این موضوع به دستور زیر توجه کنید.?


if (a>b)

c=10;

else

c=5;


? همانطور که مشاهده می‌کنید در عبارت شرطی بالا اگر شرط برقرار باشد (یعنی a از b بزرگتر باشد) مقدار c باید برابر 10 شود و در غیر این صورت برابر 5 . در این نحو عملیات شرطی (مقدار دهی متغیر در صورت برقراری یک شرط) می توان از دستور Notation (علامت سؤال) استفاده کرد. حالت کلی این دستور به شکل زیر است?


result = condition ? true : false;


▫️در دستور فوق result متغیری است که قرار است با شرایط خاص مقدار دهی شود (مثل c در مثال قبل) ، condition شرطی است که مقدار دهی طبق آن انجام می‌شود و مقادیر true و false معادل مقادیری هستند که در صورت بر قراری یا عدم برقراری شرط در متغیر result قرار می‌گیرند.


?مثال قبل با دستور ? به این شکل می‌باشد. /?


c = (a>b) ? 10 : 5;


▪️از این دستور به هر نحوی می توان استفاده کرد و هیچ محدودیتی ندارد، به عنوان مثال دستور زیر همواره بزرگ ترین مقدار بین a b c را در متغیر d قرار می‌دهد.



d = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c) ;