مقدمه
دستورات شرطی یکی از مهم ترین جریان های کنترلی در هر زبان برنامه نویسی است. ما از آنها برای دیکته کردن رفتار اجرا تحت شرایطی استفاده می کنیم. در جاوا اسکریپت، بلوک های شرطی را می توان با استفاده از اگر، یک چیز دیگر اگر، یک چیز دیگرو تعویض بیانیه.
را تعویض بیان جریان کنترل را با تصمیم گیری در برابر برخی از نتایج ممکن بیان آسان می کند. بسته به مورد استفاده منطبق، یک یا چند بلوک کد ممکن است اجرا شود. را تعویض مدیریت مشابه است یک چیز دیگر اگر بیانیه. با این حال، تعویض یک نحو خواناتر است. همچنین برای سناریوهایی با نتایج احتمالی متعدد ایده آل است.
در این آموزش، تمرکز خواهیم کرد تعویض بیان در جاوا اسکریپت و پیاده سازی آن برای ساخت ساختارهای کنترلی پیچیده. همچنین نحوه استفاده را یاد خواهیم گرفت قطع کردن ، موردو پیش فرض عبارات موجود در بلوک سوئیچ برای هدایت جریان کنترل.
با استفاده از عملگر Switch
را تعویض عملگر با مقایسه مقدار یک متغیر با عبارات ممکن کار می کند. سپس بلوک کد مطابق با نتیجه را اجرا می کند. نحو از تعویض بیانیه هیچ تفاوتی با اگر بیانیه. به طور خلاصه، نحو دستور switch به صورت زیر نوشته می شود:
در زیر نمونه ای از تعویض بیانیه. دو مورد یا دو نتیجه ممکن به همراه یک گزینه بازگشتی وجود دارد که با نشان داده شده است پیش فرض کلمه کلیدی. این گزینه بازگشتی زمانی اجرا می شود که اجرا به پایان می رسد یا زمانی که هیچ مورد منطبقی پیدا نمی شود:
switch (expression) { case x: // اجرای این بلوک کد زمانی که عبارت با case x break مطابقت دارد. case y: // این بلوک کد را زمانی اجرا کنید که عبارت با case y break مطابقت داشته باشد. پیشفرض: // بلوک پیشفرض }
تعویض (اصطلاح) { مورد ایکس: // زمانی که عبارت با حالت x مطابقت دارد این بلوک کد را اجرا کنید قطع کردن; مورد آقای: // وقتی عبارت با حالت y مطابقت دارد این بلوک کد را اجرا کنید قطع کردن; پیش فرض: // بلوک پیش فرض } |
کد بالا به صورت زیر اجرا می شود:
-
ابتدا عبارت مورد ارزیابی قرار می گیرد.
-
سپس نتیجه عبارت با آن مطابقت داده می شود مورد ایکس. اگر مقدار مطابقت دارد، کد زیر را بلوک می کند مورد ایکس انجام می شود.
-
اگر عبارت مطابقت نداشته باشد مورد ایکسسپس مورد آقای تطابق دارد. اگر مطابقت پیدا شد، پس مورد آقای کد اجرا می شود
-
در نهایت، اگر هیچ کدام مورد ایکس هیچ کدام مورد آقای پس از آن مسابقات پیش فرض کد اجرا می شود و کنترل از آن خارج می شود تعویض مسدود کردن.
یک نمونه کار
برای پیدا کردن تعویض بیانیه، بیایید به یک مثال کاری نگاه کنیم. ما مقدار روز هفته را برای تاریخ جاری با استفاده از آن بازیابی می کنیم getDay() روش جاوا اسکریپت تاریخ هدف – شی. این مقدار یک عدد است، برای یکشنبه تا 6 که برای شنبه است ما آن را با مقادیر ارزیابی می کنیم تا مشخص کنیم کدام روز هفته است:
const day = new Date().getDay();
پایان روز = جدید تاریخ().getDay(); |
سپس این مقدار را به تعویض بیانیه. را تعویض اپراتور از بالا به پایین اجرا می کند تا آن را با موارد مطابقت دهد تا مشخص کند چه روزی از هفته است. پس از یافتن مورد، قطع کردن فرمان متوقف خواهد شد تعویض مسدود کردن ادامه دادن به اظهارات نرخ:
// روز جاری هفته را روی یک متغیر تنظیم کنید که 0 یکشنبه و 6 شنبه const day = new Date().getDay(); switch (day) { case 0: console.log(“It’s Sunday”); وقفه؛ مورد 1: console.log(“دوشنبه است!”); وقفه؛ مورد 2: console.log(“سه شنبه است.”); وقفه؛ مورد 3: console.log(“چهارشنبه است!”); وقفه؛ مورد 4: console.log(“پنجشنبه است”); وقفه؛ case 5: console.log(“جمعه مبارک!”); وقفه؛ case 6: console.log(“It’s Saturday!”); وقفه؛ پیشفرض: console.log (“بدون گزارش منطبق”) }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
// روز جاری هفته را روی یک متغیر تنظیم کنید که 0 یکشنبه و 6 شنبه باشد پایان روز = جدید تاریخ().getDay(); تعویض (روز) { مورد 0: کنسول.دفتر خاطرات(“امروز یکشنبه است”); قطع کردن; مورد 1: کنسول.دفتر خاطرات(“امروز دوشنبه است!”); قطع کردن; مورد 2: کنسول.دفتر خاطرات(“سه شنبه است.”); قطع کردن; مورد 3: کنسول.دفتر خاطرات(“چهارشنبه در حال حاضر!”); قطع کردن; مورد 4: کنسول.دفتر خاطرات(“پنجشنبه است”); قطع کردن; مورد 5: کنسول.دفتر خاطرات(“جمعه خوش بگذرد!”); قطع کردن; مورد 6: کنسول.دفتر خاطرات(“شنبه است!”); قطع کردن; پیش فرض: کنسول.دفتر خاطرات(“رجیستری منطبق وجود ندارد”) } |
بسته به مقدار بازگشتی توسط getDate() روش، با شروع از بالا در برابر موارد یک به یک آزمایش می شود. نتیجه بسته به روزی که کد را اجرا کردید متفاوت خواهد بود. بلوک کد پیش فرض قرار داده شده است تا در صورت عدم تطابق مورد، بتوانیم این سناریو را مدیریت کنیم. با این حال، در اینجا در این کد، پیش فرض هرگز فراخوانی نمی شود زیرا فقط تعداد محدودی از روزهای هفته وجود دارد.
را قطع کردن بیان تضمین می کند که پس از تطبیق یک مورد، هیچ مورد دیگری مطابقت داده نخواهد شد و کنترل از آن خارج می شود تعویض بیانیه. این باعث می شود برنامه کارآمدتر و سریعتر شود.
آزمایش در برابر محدوده ها در سوئیچ
تا اینجا ما موارد استفاده بسیار ساده را بررسی کرده ایم. اما ممکن است مواقعی وجود داشته باشد که لازم باشد در مقابل طیف وسیعی از مقادیر به جای یک مقدار واحد آزمایش شود. ما می توانیم این کار را با تنظیم عبارت خود انجام دهیم درست است، واقعی و انجام عملیات در هر کدام مورد بیانیه.
بیایید این مورد استفاده را با استفاده از یک مثال نشان دهیم. ما یک عدد را می گیریم و سپس با استفاده از طبقه بندی زیر آن را به نمره تبدیل می کنیم:
ما این اظهارات را به عنوان می نویسیم تعویض بیانیه. در زیر کد این کار آمده است:
// نمرات دانش آموز، نمره ثابت = 87; switch (true) { // اگر نتیجه 90 یا بالاتر باشد >= 90: console.log(“A”); وقفه؛ // اگر امتیاز 80 یا بالاتر است، امتیاز تصادفی >= 80: console.log(“B”); وقفه؛ // اگر امتیاز 70 یا بیشتر است، امتیاز تصادفی >= 70: console.log(“C”); وقفه؛ // اگر امتیاز 60 یا بیشتر است، امتیاز تصادفی >= 60: console.log(“D”); وقفه؛ // هر چیزی 59 یا پایین تر به طور پیش فرض خراب می شود: console.log(“F”); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
// نمره دانش آموز پایان کلاس = 87; تعویض (درست است، واقعی) { // اگر امتیاز 90 یا بیشتر باشد مورد کلاس >= 90: کنسول.دفتر خاطرات(“آ”); قطع کردن; // اگر امتیاز 80 یا بالاتر باشد مورد کلاس >= 80: کنسول.دفتر خاطرات(“ب”); قطع کردن; // اگر امتیاز 70 یا بالاتر باشد مورد کلاس >= 70: کنسول.دفتر خاطرات(“°C”); قطع کردن; // اگر امتیاز 60 یا بیشتر باشد مورد کلاس >= 60: کنسول.دفتر خاطرات(“د”); قطع کردن; // هر چیزی 59 یا پایین تر از کار می افتد پیش فرض: کنسول.دفتر خاطرات(“F”); } |
برخلاف مثالهای کد بالا، در اینجا عبارت داخل پرانتز را به صورت تنظیم کردهایم درست است، واقعی. بنابراین، هر دستور case با مقدار واقعی مطابقت داشته باشد، اجرا خواهد شد. درست مثل روی یک چیز دیگر اگر عملگر، اولین عملگر که با مقدار مشخص شده مطابقت داشته باشد اجرا می شود. در اینجا خروجی خواهد بود ببا وجود اینکه حتی درجه سانتی گراد و ه همچنین با عبارت مطابقت داشته باشد.
موارد متعدد
اگر می خواهید بیش از یک نمونه از یک بلوک کد مشابه داشته باشید، این نیز امکان پذیر است. این مشابه است یا شرایط در اگر بیانیه. در چنین سناریوهایی می توانیم برای هر بلوک کد بیش از یک مورد مشخص کنیم.
برای تشریح این مفهوم، مثالی از ماههای سال میآوریم. ما این ماه ها را به فصول سال دسته بندی می کنیم. اول، ما از جدید استفاده می کنیم تاریخ() روشی برای یافتن عددی مطابق با ماه جاری و اعمال آن بر روی متغیر ماه. را تاریخ().دریافت ماه() متد عددی را از 0 به 11با 0 همانطور که ژانویه و 11 با دسامبر مرتبط است.
ما با استفاده از مشخصات زیر دسته بندی می کنیم:
-
زمستان: ژانویه، فوریه و مارس
-
بهار: فروردین، اردیبهشت و خرداد
-
تابستان: تیر، مرداد و شهریور
-
فصل پاييز: اکتبر، نوامبر و دسامبر
در اینجا کد شبیه به آن است:
const month = new Date().getMonth(); switch (month) { // ژانویه، فوریه، مارس مورد 0: مورد 1: مورد 2: console.log(“Winter”); وقفه؛ // آوریل، می، ژوئن مورد 3: مورد 4: مورد 5: console.log(“Spring”); وقفه؛ // ژوئیه، آگوست، سپتامبر مورد 6: مورد 7: مورد 8: console.log(“تابستان”); وقفه؛ // اکتبر، نوامبر، دسامبر مورد 9: مورد 10: مورد 11: console.log(“پاییز”); وقفه؛ پیش فرض: console.log (“مشکلی پیش آمد.”); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
پایان ماه = جدید تاریخ().دریافت ماه(); تعویض (ماه) { // ژانویه فوریه مارس مورد 0: مورد 1: مورد 2: کنسول.دفتر خاطرات(“زمستان”); قطع کردن; // آوریل، می، ژوئن مورد 3: مورد 4: مورد 5: کنسول.دفتر خاطرات(“بهار”); قطع کردن;
// جولای، آگوست، سپتامبر مورد 6: مورد 7: مورد 8: کنسول.دفتر خاطرات(“تابستان”); قطع کردن;
// اکتبر نوامبر دسامبر مورد 9: مورد 10: مورد 11: کنسول.دفتر خاطرات(“فصل پاييز”); قطع کردن;
پیش فرض: کنسول.دفتر خاطرات(“مشکلی پیش آمد.”); } |
با اجرای کد بالا بسته به ماه نام فصل روی کنسول نمایش داده می شود.
نتیجه
در این آموزش نحوه استفاده را نشان دادیم تعویض بیان در برنامه های جاوا اسکریپت ما هم درخواست دادیم تعویض عملگر به محدوده و موارد متعدد همراه با کلمه کلیدی پیش فرض. اگر می خواهید در مورد جاوا اسکریپت بیشتر بدانید، می توانید آموزش های زیر را بررسی کنید:
کار کامپیوتر مبارک!
درباره شریاس پاتیل
متخصص عمومی در علم داده