عملگر های شرطی if , ‘?’

گاها ، بر اساس شرایط مختلف عملیات متفاوتی انجام بدیم.

برای انجامش میتونیم از دستور if و عملگر شرطی ؟ استفاده کنیم.

دستور if

دستور if شرط داخل پرانتز رو محاسبه میکند و در صورتی که نتیجه درست باشد یک سری دستوراتی رو اجرا میکند.

نمونه :

در مثال بالا شرط یک بررسی ساده برابری است (year == 2015)، اما میتونه خیلی پیچیده باشه.

در صورتی که میخواهیم بیشتر از یک دستور اجرا بشه باید کد ها رو در داخل آکولاد بنویسیم:

پیشنهاد میکنم در صورتی هم که فقط یک دستور برای اجرا دارید برای خوانایی بهتر درون یک آکولاد اونو بنویسید.

 

تبدیل boolean

دستور if دستورات داخل پرانتز رو محاسبه میکنه و نتیجه رو به boolean تبدیل میکنه.

بذارید قوانین تبدیل از بخش تبدیل نوع یادآوری کنیم.

  • عدد ۰ ،رشته خالی ” ، null ، undefined و NaN همه اینا مقدار false رو به ما میدن. به همین دلیلد مقادری دروغگو نام دارند.
  • مابقی مقادیر به ما true رو میدن که به همین دلیل راستگو ها نامیده میشوند.

 

همچنین کد زیر هیچوقت اجرا نمیشود:

 

همچنین  داخل این شرط همیشه اجرا میشود:

 

ما میتونیم یک متغیر از پیش محاسبه شده رو قرار بدیم:

 

عبارت else

دستور if ممکن هست حاوی بلوک else اختیاری باشد.

زمانی که شرط false هست اجرا میشود.

برای نمونه:

 

چندین شرط else if

بعضی مواقع میخاهیم چندین نوع را آزمایش کنیم.عبارت else if این کار رو برامون انجام میده.

برای نمونه :

در نمونه کد فوق میبینیم که جاوا اسکریپت بررسی میکنه که year از ۲۰۱۵ کوچکتر است در صورتی که اشتباه باشه میره به شرط بعدی year >2015 همچنین در صورتی که باز این شرط هم اشتباه باشد دستورات بخش else اجرا میشود.

میتونیم else if های بیشتری استفاده کنیم.

else پایانی هم اختیاری هست.

عملگر شرطی ?

بعضی مواقع ما نیاز داریم یک مقداری رو با یک شرط به بک متغیر انتساب بدیم.

برای نمونه :

این عملگر شرطی یا علامت سوال میتونه همین کار فوق رو به صورت کوتاهتر و ساده تر انجام بده.

برای استفاده از این عملگر میتونیم از علامت سوال ؟ استفاده کنیم.

شاید بخاطر اینکه سه عملوند داره به نام سه قلو هم معروف باشه.

تو جاوا اسکریپت این عملگر رو خیلی استفاده خواهید کرد و پر کاربرد خواهد بود براتون.

syntax:

condition محاسبه میشود و در صورت درست بودن مقدار value1 و در صورت اشتباه بودن value2 در result قرار میگیرد.

نمونه :

از نظر فنی ما چون در محاسبات تقدم علامت سوال از > پایینتر هست  میتونیم پرانتز ها رو حذف کنیم.

نمونه بالا با حذف پرانتز:

اما به دلیل خوانایی بیشتر توصیه میکنیم که پرانتز ها رو بذارید.


یاداشت مهم

در مثال بالا شما میتونید از علامت سوال استفاده نکنید زیرا این مقایسه خودش مقدر true/false رو بر میگردونه :


علامت سوال ؟ چند تایی

دنباله ای از عملگر های ؟ میتواند مقداری رو که به یک یا بیشتر از یک شرط را برگدونه.

خب این یعنی چی ؟

یعنی اینکه ما میتونیم با استفاده از علامت سوال هم شرط های تو در تو بنویسیم.

نمونه :

ممکنه اولین بار فهم اینکه چجوری میشه انجامش داد یه کم سخت باشه.

اما بعد از یه نگاه دقیقتر متوجه میشیم که یک دنباله ای از شرط هاست و خیلی هم ساده س:

  1. اولین علامت سوال بررسی میکنه که age از ۳ کوچکتر است.
  2. در صورتی که کوچکتر باشه ‘Hi, baby!’ رو برمیگردونه در غیر اینصورت وارد شرط age بزرگتر از ۱۸ میشه.
  3. اگه درست باشه hello رو برمیگردونه در غیر اینصورت age<100 رو بررسی میکنه.
  4. اگر درست باشه ‘Greetings!’ رو برمیگردونه در غیر اینصورت متن ‘What an unusual age!’ رو در متغیر message قرار میده.

کد بالا با استفاده از if و else :

 

استفاده غیر مرسوم از شرط خطی ?

بعضی مواقع از شرط خطی بجای if استفاده میکنیم:

بسته به شرط اینکه company == ‘Netscape’ هرکدام از عباراتی که بعد ؟ اجرا میشوند.

اینجا مقداری رو انتساب ندادیم .

در عوض بسته به شرط کد های مختلفی رو اجرا میکنیم.

استفاده از علامت سوال رو برای این راه توصیه نمیشه.

شاید از دستور if کوتاهتر باشه اما خوانایی کد از بین میره.

نمونه بالا با استفاده از شرط if:

چشم ها ما به صورت عمودی محتوا رو میبینند.

بلوک کد های که در چندین خط نوشته شده اند از کد های که طولانی و افقی هستن را ساده تر میفهم.

هدف عملگر علامت سوال برای برگرداندن یک مقدار بسته به شرایط هست.

لطفا فقط دقیقا به همین دلیل استفاده کنید .

زمانی که بخش های مختلفی از کد را دارید از if استفاده کنید.

 

منبع :javascript.info

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *