دستور Switch در ++C :
دستور Switch یکی از ساختارهای کنترلی در زبان برنامهنویسی ++C است که در این مقاله به بررسی جزئیات این دستور خواهیم پرداخت. دستور Switch معمولاً برای انتخاب یکی از چند حالت ممکن براساس مقدار یک متغیر استفاده میشود و در صورتی که مقدار متغیر با یکی از حالتها تطابق داشته باشد، برنامه به بلوک مربوطه انتقال پیدا میکند.
ساختار کلی دستور Switch به صورت زیر است:
“`
switch(expression)
{
case constant1:
// block of code to be executed if expression matches constant1
break;
case constant2:
// block of code to be executed if expression matches constant2
break;
.
.
.
default:
// block of code to be executed if expression doesn’t match any constants
}
“`
در این ساختار، expression مقداری است که برای بررسی تطابق با حالتها استفاده میشود. همچنین میتوان از یک متغیر یا عبارت به جای یک مقدار ثابت استفاده کرد. در صورتی که مقدار expression با یکی از حالتها تطابق داشته باشد، برنامه به بلوک مربوطه انتقال پیدا میکند. بلافاصله پس از اجرای بلوک مربوطه، برنامه به سطری پس از ساختار Switch انتقال پیدا میکند. اگر expression با هیچ یک از حالتها تطابق نداشت، برنامه به بلوک default انتقال پیدا میکند (اگر وجود داشته باشد) و سپس به سطری پس از ساختار Switch ادامه میدهد.
مهمترین نکته در استفاده از دستور Switch این است که بعد از اجرای بلوک مربوط به یک حالت، برنامه بدون اجرای بلوکهای بعدی به سطری پس از ساختار Switch منتقل میشود. به همین دلیل باید از دستور break در پایان هر بلوک استفاده کرد تا اجرای بلوکهای بعدی متوقف شود. در صورتی که دستور break در بلوک مربوط به یک حالت استفاده نشود، برنامه به بلوکهای بعدی نیز ادامه خواهد داشت که نتیجه ممکن است با توقعات ما مغایرت داشته باشد.
در مورد بلوک default، این بلوک اختیاری است و میتواند در انتهای ساختار Switch قرار داده شود. اگر هیچ یک از حالتها با expression تطابق نداشته باشد، برنامه به بلوک default انتقال پیدا میکند و سپس به سطری پس از ساختار Switch ادامه میدهد.
در ++C، expression میتواند یکی از انواع دادهای مانند عدد صحیح، کاراکتر یا رشته باشد. همچنین از نسخه C++11 به بعد، میتوان از enum و نوع enum class نیز به عنوان expression استفاده کرد.
به طور خلاصه، دستور Switch در ++C یک ساختار کنترلی است که براساس تطابق مقدار یک expression با حالتهای مختلف، برنامه را به بلوکهای مختلفی هدایت میکند. از استفاده صحیح این دستور باید به تعیین مناسب حالتها، استفاده از دستور break و تعریف بلوک default دقت کرد تا به نتایج دقیق و مطلوب دست یافت.