Trong
khoa học máy tính,
luồng điều khiển (tiếng Anh: control flow hay flow of control) là thứ tự các
câu lệnh,
tập lệnh hay
lời gọi hàm riêng biệt của một
chương trình mệnh lệnh được
thực thi hay đánh giá. Việc nhấn mạnh vào kiểm soát dòng một cách rõ ràng sẽ phân biệt một ngôn ngữ
lập trình mệnh lệnh (imperative programming) với ngôn ngữ
lập trình khai báo (declarative programming).Trong một
ngôn ngữ lập trình bắt buộc, một câu lệnh điều khiển luồng là một câu lệnh thực thi mà kết quả trong một sự lựa chọn được thực hiện theo cách của hai hoặc nhiều đường dẫn tiếp theo. Đối với
ngôn ngữ lập trình không nghiêm ngặt các ngôn ngữ chức năng, các hàm và cấu trúc ngôn ngữ tồn tại để đạt được cùng một kết quả, nhưng chúng thường không được gọi là các câu lệnh luồng điều khiển.Một tập hợp các câu lệnh lần lượt thường được cấu trúc như một
Block, ngoài việc nhóm, cũng định nghĩa
phạm vi từ vựng.Ngắt và tín hiệu là các cơ chế cấp thấp có thể thay đổi dòng điều khiển theo cách tương tự như chương trình con, nhưng thường xảy ra như một phản ứng với một số kích thích hoặc sự kiện bên ngoài (có thể xảy ra không đồng bộ), thay vì thực hiện một dòng điều khiển lưu lượng.
Ngắt và
tín hiệu là cơ chế cấp thấp có thể thay đổi luồng điều khiển theo cách tương tự như chương trình con, nhưng thường xảy ra như một phản ứng với một số kích thích hoặc sự kiện bên ngoài (có thể xảy ra
không đồng bộ), thay vì thực hiện câu lệnh dòng điều khiển nội dòng .