دستور switch در زبان C++
دستور switch در زبان C++ تقریبا معادل دستور if تو در تو می باشد با این تفاوت که فقط می توانند مقادیر ثابتی از رشته ها، کاراکترها و اعداد را بررسی کند.
نحوه نوشتن دستور شرطی switch
در زیر Syntax یک دستور switch را مشاهده می کنید:
1 2 3 4 5 6 7 8 9 10 11 12 | switch(expression) { case constant-expression : statement(s); break; //optional case constant-expression : statement(s); break; //optional // you can have any number of case statements. default : //Optional statement(s); } |
قوانین زیر بر روی یک دستور switch اعمال می شوند:
- عبارت مورد استفاده در دستور switch باید یک نوع عددی یا قابل شمارش باشد یا می تواند از نوع یک کلاس باشد که در آن کلاس، یک تابع برای تبدیل به نوع عددی یا قابل شمارش تعریف شده باشد.
- شما می توانید هر تعداد بخش case که نیاز داشتید به دستور switch اضافه کنید.
- مقدار بررسی شده در case باید از همان نوعی باشد که در switch تعریف شده است. یعنی اگر در switch یک متغیر از نوع عدد را بررسی می کنید، باید مقادیر بررسی شده در case ها هم از نوع عددی باشند.
- زمانی که دستور switch به case مورد نظر برسد، کدهای موجود در بلوک آن case را اجرا می کند تا زمانی که به یک دستور break برسد.
- وقتی به یک دستور break می رسد، از switch خارج شده و کدهای بعد از بلوک switch اجرا می شوند.
- اگر در case ها دستور break مشخص نشود، سایر case ها هم اجرا می شوند.
- یک دستور switch می تواند، یک بخش default داشته باشد. بخش default زمانی که هیچ یک از case ها درست نباشد، اجرا می شود.
دیاگرام دستور switch
مثال
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 | #include <iostream> using namespace std; int main () { // local variable declaration: char grade = 'D'; switch(grade) { case 'A' : cout << "Excellent!" << endl; break; case 'B' : case 'C' : cout << "Well done" << endl; break; case 'D' : cout << "You passed" << endl; break; case 'F' : cout << "Better try again" << endl; break; default : cout << "Invalid grade" << endl; } cout << "Your grade is " << grade << endl; return 0; } |
زمانی که کد بالا توسط کامپایلر زبان C++ اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 2 | You passed Your grade is D |
هیچ نظری ثبت نشده است