Câu lệnh là đơn vị cơ bản của một ngôn ngữ lập trình. Trong trường hợp đặc biệt, nó có thể cũng trở thành một đơn vị thao tác của máy tính điện tử hay còn gọi là một chỉ thị.
Vì mức độ phức tạp, việc dùng các chỉ thị để trực tiếp điều khiển máy tính sẽ rất ít thông dụng. Thay vào đó, người ta ghép một số tổ hợp của các chỉ thị để cho máy thi hành được một động tác lớn hơn gọi là câu lệnh. Như vậy mỗi câu lệnh bao gồm một hay một số mệnh lệnh máy tính được sắp xếp theo trình tự xác định và nhằm mụch đích ra lệnh cho CPU tiến hành một thao tác cố định có ý nghĩa.
Tùy theo ngôn ngữ lập trình, các câu lệnh sẽ có cấu trúc khác nhau và có trật tự sắp xếp nhất định. Trật tự này thường không đổi và được gọi là cú pháp (syntax).
Câu lệnh có thể hiểu như là mệnh đề cơ bản có thể được cấu trúc thông qua việc sử dụng các từ khóa (đã được định nghĩa từ trước bởi ngôn ngữ lập trình) hoặc là có thể tạo bởi các chỉ thị từ các cấu trúc ngữ pháp hay cú pháp đã được định nghĩa sẵn. Các câu lệnh của một chương trình dùng để chỉ thị cho máy tính biết làm gì, xử lý như thế nào với các dữ liệu và từ đó tiến hành các phép tính toán hay biến đổi dữ liệu để đạt được kết quả.
Sau đây là các loại câu lệnh chính. Thí dụ được dùng viết theo ngôn ngữ Pascal
TYPE SALARY = INTEGER
VAR A:INTEGER
A:= A + 1
A:= A + 1; WRITELN(A)
IF A > 3 THEN WRITELN(A) ELSE WRITELN("NOT YET") END
FOR A:=1 TO 10 DO WRITELN(A) END
CLEARSCREEN()
mov AX, BX; (gán giá trị của BX lên AX)
printf("Hello World!\n"); // hiển thị ra màn hình "Hello World!"
cin >> name >> age; // đọc (từ bàn phím) giá trị cho biến "name" và "age"