گزاره switch..case در ++C — راهنمای کاربردی
در بخشهای قبلی (+) این سری مقالات آموزش زبان برنامهنویسی ++C با گزاره if..else..if آشنا شدیم که امکان اجرای یک قطعه کد را در میان گزینههای مختلف فراهم میسازد. با این حال اگر قصد دارید مقدار یک متغیر منفرد را با استفاده از گزارههای متوالی if..else..if بررسی کنید، بهتر است به جای آن از گزاره switch..case استفاده کنید. برای مطالعه بخش قبلی این سری ملاقات آموزشی زبان برنامهنویسی ++C به لینک زیر مراجعه کنید:
گزاره 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 چگونه کار میکند و شرایط مختلف چگونه درون بند 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-های بعد از حالت صحیح نیز اجرا خواهند شد. برای مشاهده بخش بعدی این مطلب به لینک زیر رجوع کنید:
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش پیشرفته C++ (شی گرایی در سی پلاس پلاس)
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- آموزش ++C — راهنمای شروع یادگیری
- گزاره های شرطی ساده و تودرتو در ++C — به زبان ساده
- برنامه نویسی شی گرا در C++ — آموزش رایگان، به زبان ساده و جامع
==