
مقدمه
دستورات شرطی یکی از مهم ترین جریان های کنترلی در هر زبان برنامه نویسی است. ما از آنها برای دیکته کردن رفتار اجرا تحت شرایطی استفاده می کنیم. در جاوا اسکریپت، بلوک های شرطی را می توان با استفاده ازاگر،یک چیز دیگر اگر،یک چیز دیگروتعویض بیانیه.
راتعویض بیان جریان کنترل را با تصمیم گیری در برابر برخی از نتایج ممکن بیان آسان می کند. بسته به مورد استفاده منطبق، یک یا چند بلوک کد ممکن است اجرا شود. راتعویض مدیریت مشابه استیک چیز دیگر اگر بیانیه. با این حال،تعویض یک نحو خواناتر است. همچنین برای سناریوهایی با نتایج احتمالی متعدد ایده آل است.
در این آموزش، تمرکز خواهیم کردتعویض بیان در جاوا اسکریپت و پیاده سازی آن برای ساخت ساختارهای کنترلی پیچیده. همچنین نحوه استفاده را یاد خواهیم گرفتقطع کردن ،موردوپیش فرض عبارات موجود در بلوک سوئیچ برای هدایت جریان کنترل.
با استفاده از عملگر 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: کنسول.دفتر خاطرات(“فصل پاييز”); قطع کردن;
پیش فرض: کنسول.دفتر خاطرات(“مشکلی پیش آمد.”); } |
با اجرای کد بالا بسته به ماه نام فصل روی کنسول نمایش داده می شود.
نتیجه
در این آموزش نحوه استفاده را نشان دادیمتعویض بیان در برنامه های جاوا اسکریپت ما هم درخواست دادیمتعویض عملگر به محدوده و موارد متعدد همراه با کلمه کلیدی پیش فرض. اگر می خواهید در مورد جاوا اسکریپت بیشتر بدانید، می توانید آموزش های زیر را بررسی کنید:
کار کامپیوتر مبارک!

درباره شریاس پاتیل
متخصص عمومی در علم داده