Câu lệnh switch

Bách khoa toàn thư mở Wikipedia
Buớc tưới chuyển hướng Bước tới tìm kiếm

Trong các ngôn ngữ lập trình máy tính, câu lệnh switch hay câu lệnh chuyển đổi (tiếng Anh: 'switch statement') là một loại cơ chế điều khiển lựa chọn để cho phép giá trị của một biến hay biểu thức thay đổi luồng điều khiển của một chương trình thực thi thông qua tìm kiếm và ánh xạ.

Chức năng của câu lệnh switch có gì đó tương tự với câu lệnh if được sử dụng trong ngôn ngữ lập trình như C/C++, C#, Visual Basic.NET, Java và tồn tại trong hầu hết các ngôn ngữ lập trình mệnh lệnh cấp cao như Pascal, Ada, C/C++, C#, Visual Basic.NET, Java, và trong nhiều loại ngôn ngữ khác, dùng các từ khóa như switch, case, selectinspect.

Câu lệnh switch có hai biến thể: một là switch có cấu trúc như trong Pascal, vốn thực thi chính xác trong một nhánh, và switch không cấu trúc như trong C, với chức năng như một loại goto. Các lý do chính để dùng switch bao gồm cải thiện sự rõ ràng bằng cách giảm thiểu sự lặp lại của mã nguồn, và (nếu heuristic cho phép) cũng cho phép những tiềm năng để thực thi nhanh hơn thông qua tối ưu hóa trình biên dịch trong nhiều trường hợp.

Câu lệnh switch trong C
switch (age) {
  case 1:  printf("You're one.");            break;
  case 2:  printf("You're two.");            break;
  case 3:  printf("You're three.");
  case 4:  printf("You're three or four.");  break;
  default: printf("You're not 1,2,3 or 4!");
}

Lịch sử[sửa | sửa mã nguồn]

Trong bài viết Introduction to Metamathematics năm 1952, Stephen Kleene đã chính thức chứng minh rằng hàm CASE (là hàm IF-THEN-ELSE ở dạng đơn giản nhất) là một hàm đệ quy nguyên tố (primitive recursive function), trong đó ông định nghĩa khái niệm definition by cases theo cách sau:

"#F. The function φ defined thus
φ(x1 , ... , xn ) =
  • φ1(x1 , ... , xn ) if Q1(x1 , ... , xn ),
  • . . . . . . . . . . . .
  • φm(x1 , ... , xn ) if Qm(x1 , ... , xn ),
  • φm+1(x1 , ... , xn ) otherwise,

Cú pháp điển hình[sửa | sửa mã nguồn]

Xem thêm[sửa | sửa mã nguồn]

Tham khảo[sửa | sửa mã nguồn]

Đọc thêm[sửa | sửa mã nguồn]