Toán tử Switch
So sánh giá trị biểu thức với các hằng số trong tất cả các biến thể case
và chuyển quyền điều khiển đến toán tử tương ứng với giá trị biểu thức. Mỗi biến thể của case
có thể được đánh dấu bằng một hằng số nguyên, hằng số ký tự hoặc biểu thức hằng. Biểu thức hằng không thể chứa biến hoặc lời gọi hàm. Biểu thức của toán tử switch
phải thuộc kiểu nguyên – int
hoặc uint
.
switch(expression)
{
case constant: operators
case constant: operators
...
default: operators
}
2
3
4
5
6
7
Các toán tử được đánh dấu bởi nhãn default
được thực thi nếu không có hằng số nào trong các toán tử case
bằng với giá trị biểu thức. Biến thể default
không nhất thiết phải được khai báo và không nhất thiết phải là cuối cùng. Nếu không có hằng số nào tương ứng với giá trị biểu thức và biến thể default
không có, không có hành động nào được thực thi.
Từ khóa case
với một hằng số chỉ là nhãn, và nếu các toán tử được thực thi cho một biến thể case
nào đó, chương trình sẽ tiếp tục thực thi các toán tử của tất cả các biến thể tiếp theo cho đến khi gặp toán tử break
. Điều này cho phép liên kết một chuỗi các toán tử với nhiều biến thể.
Biểu thức hằng được tính toán trong quá trình biên dịch. Không có hai hằng số nào trong một toán tử switch
có thể có cùng giá trị.
Ví dụ:
//--- Ví dụ đầu tiên
switch(x)
{
case 'A':
Print("CASE A");
break;
case 'B':
case 'C':
Print("CASE B or C");
break;
default:
Print("NOT A, B or C");
break;
}
//--- Ví dụ thứ hai
string res="";
int i=0;
switch(i)
{
case 1:
res=i;break;
default:
res="default";break;
case 2:
res=i;break;
case 3:
res=i;break;
}
Print(res);
/*
Kết quả
default
*/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Xem thêm
Khởi tạo biến, Phạm vi hiển thị và vòng đời của biến, Tạo và xóa đối tượng