Câu lệnh switch
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
, select
và inspect
.
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.
switch (age) {
case 1: printf("You're one."); break;
case 2: printf("You're two."); break;
case 3: printf("You're three."); break;
case 4: printf("You're four."); break;
default: printf("You're not 1,2,3 or 4!");
}
|
Lịch sử
sửaTrong 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,
- φ(x1 , ... , xn ) =
Cú pháp điển hình
sửaXem thêm
sửaTham khảo
sửaĐọc thêm
sửa- Stephen Kleene, 1952 (10th reprint 1991), Introduction to Metamathematics, North-Holland Publishing Company, Amsterdam NL, ISBN 0-7204-2103-9
- George Boolos, John Burgess, and Richard Jeffrey, 2002, Computability and Logic: Fourth Edition, Cambridge University Press, Cambridge UK, ISBN 0-521-00758-5 paperback. cf page 74-75.