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
