گزاره switch..case در ++C — راهنمای کاربردی

۸۶۹۷ بازدید
آخرین به‌روزرسانی: ۲۹ شهریور ۱۴۰۲
زمان مطالعه: ۲ دقیقه
دانلود PDF مقاله
گزاره switch..case در ++C — راهنمای کاربردی

در بخش‌های قبلی (+) این سری مقالات آموزش زبان برنامه‌نویسی ++C با گزاره if..else..if آشنا شدیم که امکان اجرای یک قطعه کد را در میان گزینه‌های مختلف فراهم می‌سازد. با این حال اگر قصد دارید مقدار یک متغیر منفرد را با استفاده از گزاره‌های متوالی if..else..if بررسی کنید، بهتر است به جای آن از گزاره switch..case استفاده کنید. برای مطالعه بخش قبلی این سری ملاقات آموزشی زبان برنامه‌نویسی ++C به لینک زیر مراجعه کنید:

997696

گزاره switch اگر نه همیشه، دست‌کم در اغلب موارد سریع‌تر از گزاره if…else است. ضمناً ساختار گزاره سوئیچ ساده‌تر و درک آن آسان‌تر است.

ساختار گزاره switch...case در زبان ++C

در این قسمت می‌خواهیم با ساختار گزاره switch...case در زبان ++C آشنا شویم.

کدهای مربوطه را در ادامه آورده‌ایم.

1switch (n)
2{
3    case constant1:
4        // code to be executed if n is equal to constant1;
5        break;
6
7    case constant2:
8        // code to be executed if n is equal to constant2;
9        break;
10        .
11        .
12        .
13    default:
14        // code to be executed if n doesn't match any constant
15}

وقتی یک ثابت حالت پیدا شود که با عبارت سوئیچ مطابقت پیدا کند، کنترل برنامه به بلوک کدی انتقال می‌یابد که با آن حالت مرتبط است.

در شبه کد فوق تصور کنید مقدار n برابر با constant2 باشد. کامپایلر بلوک کدی را اجرا خواهد کرد با گزاره case مرتبط هستند تا این که به انتهای بلوک سوئیچ برسد یا با گزاره break مواجه شود. گزاره break برای جلوگیری از اجرای کد در case بعدی استفاده می‌شود.

فلوچارت گزاره switch

گزاره switch

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

مثالی از گزاره switch در ++C

1// Program to built a simple calculator using switch Statement
2
3#include <iostream>
4using namespace std;
5
6int main()
7{
8    char o;
9    float num1, num2;
10
11    cout << "Enter an operator (+, -, *, /): ";
12    cin >> o;
13
14    cout << "Enter two operands: ";
15    cin >> num1 >> num2;
16    
17    switch (o) 
18    {
19        case '+':
20            cout << num1 << " + " << num2 << " = " << num1+num2;
21            break;
22        case '-':
23            cout << num1 << " - " << num2 << " = " << num1-num2;
24            break;
25        case '*':
26            cout << num1 << " * " << num2 << " = " << num1*num2;
27            break;
28        case '/':
29            cout << num1 << " / " << num2 << " = " << num1/num2;
30            break;
31        default:
32            // operator is doesn't match any case constant (+, -, *, /)
33            cout << "Error! operator is not correct";
34            break;
35    }
36    
37    return 0;
38}

خروجی

Enter an operator (+, -, *, /): +
-
Enter two operands: 2.3
4.5
2.3 - 4.5 = -2.2

عملگر (-) که از سوی کاربر وارد می‌شود در متغیر 0 ذخیره می‌شود. دو عملوند 2.3 و 4.5 به ترتیب در متغیرهای num1 و num2 ذخیره می‌شوند. سپس کنترل برنامه به دستور زیر می‌رسد:

cout << num1 << " - " << num2 << " = " << num1-num2;

در نهایت گزاره break موجب اتمام گزاره switch می‌شود. اگر گزاره break استفاده نشود، همه case-های بعد از حالت صحیح نیز اجرا خواهند شد. برای مشاهده بخش بعدی این مطلب به لینک زیر رجوع کنید:

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۲۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
programiz
نظر شما چیست؟

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