Câu lệnh switch trong C là một thay thế cho câu lệnh bậc thang if-else-if cho phép chúng ta thực hiện nhiều thao tác cho các giá trị có thể khác nhau của một biến duy nhất được gọi là biến switch. Ở đây, chúng ta có thể định nghĩa các câu lệnh khác nhau trong nhiều trường hợp cho các giá trị khác nhau của một biến.
Cú pháp của câu lệnh switch trong ngôn ngữ c được đưa ra dưới đây:
- switch(expression){
- case value1:
- //code to be executed;
- break; //optional
- case value2:
- //code to be executed;
- break; //optional
- ......
- default:
- code to be executed if all cases are not matched;
- }
Quy tắc cho câu lệnh switch trong ngôn ngữ C
1) The switch expression must be of an integer or character type.
2) The case value must be an integer or character constant.
3) The case value can be used only inside the switch statement.
4) The break statement in switch case is not must. It is optional. If there is no break statement found in the case, all the cases will be executed present after the matched case. It is known as fall through the state of C switch statement.
Hãy cố gắng hiểu nó bằng các ví dụ. Chúng tôi giả định rằng có các biến sau đây.
Valid Switch | Invalid Switch | Valid Case | Invalid Case |
---|---|---|---|
switch(x) | switch(f) | case 3; | case 2.5; |
switch(x>y) | switch(x+2.5) | case 'a'; | case x; |
switch(a+b-2) | case 1+2; | case x+2; | |
switch(func(x,y)) | case 'x'>'y'; | case 1,2,3; |
Flowchart of switch statement in C
Hãy xem một ví dụ đơn giản về câu lệnh chuyển đổi ngôn ngữ c.- #include<stdio.h>
- int main(){
- int number=0;
- printf("enter a number:");
- scanf("%d",&number);
- switch(number){
- case 10:
- printf("number is equals to 10");
- break;
- case 50:
- printf("number is equal to 50");
- break;
- case 100:
- printf("number is equal to 100");
- break;
- default:
- printf("number is not equal to 10, 50 or 100");
- }
- return 0;
- }
Output
enter a number:4 number is not equal to 10, 50 or 100
enter a number:50 number is equal to 50
Switch case example 2
Output
hi
Let's try to understand the fall through state of switch statement by the example given below.
Output
enter a number:10 number is equal to 10 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100
Output
enter a number:50 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100
trường hợp chuyển đổi lồng nhau
Output
the value of i evaluated in outer switch: 10 The value of j evaluated in nested switch: 20 Exact value of i is : 10 Exact value of j is : 20