C++ Switch

🔹 تعریف

  • switch برای بررسی یک مقدار مشخص و اجرای یکی از چندین حالت ممکن استفاده می‌شود.

  • معمولاً زمانی استفاده می‌کنیم که چند گزینه ثابت وجود دارد.

  • جایگزین مناسبی برای چندین if ... else if متوالی است.

🔹 ساختار کلی

switch (عبارت) { case مقدار1: // کاری که برای مقدار1 انجام می‌شود break; case مقدار2: // کاری که برای مقدار2 انجام می‌شود break; case مقدار3: // کاری که برای مقدار3 انجام می‌شود break; default: // کاری که اگر هیچ case درست نبود انجام شود }
  • break; → اجرای ادامه caseها را متوقف می‌کند.

  • default: → اختیاری است، برای حالتی که هیچ case مطابقت نداشت.

1️⃣ مثال ساده: روزهای هفته

#include <iostream> using namespace std; int main() { int day = 3; switch (day) { case 1: cout << "Monday"; break; case 2: cout << "Tuesday"; break; case 3: cout << "Wednesday"; break; case 4: cout << "Thursday"; break; case 5: cout << "Friday"; break; case 6: cout << "Saturday"; break; case 7: cout << "Sunday"; break; default: cout << "Invalid day"; } }

🔹 خروجی: Wednesday

2️⃣ مثال: تشخیص کاراکتر

#include <iostream> using namespace std; int main() { char grade = 'B'; switch (grade) { case 'A': cout << "Excellent"; break; case 'B': cout << "Good"; break; case 'C': cout << "Average"; break; case 'D': cout << "Poor"; break; case 'F': cout << "Fail"; break; default: cout << "Invalid grade"; } }

🔹 خروجی: Good

3️⃣ نکات مهم

  1. switch فقط روی مقادیر صحیح، char و enum کار می‌کند.

  2. اگر break نگذاریمFall-through رخ می‌دهد و ادامه caseها هم اجرا می‌شوند.

  3. default اختیاری است، اما بهتر است همیشه یک حالت پیش‌فرض داشته باشیم.

4️⃣ مثال Fall-through

#include <iostream> using namespace std; int main() { int day = 2; switch (day) { case 1: case 2: case 3: cout << "Weekday"; break; case 4: case 5: cout << "Almost weekend"; break; case 6: case 7: cout << "Weekend"; break; default: cout << "Invalid day"; } }

🔹 خروجی: Weekday (چون 2 یکی از caseهای 1,2,3 است)