Sách C/Mệnh đề
Các cấu trúc dòng điều khiển
[sửa]Một cách cơ bản thì C là ngôn ngữ dạng tự do. Trong phần này, tất cả các chữ "mệnh đề" có nghĩa tương đương với chữ "câu lệnh".
Các mệnh đề phức hợp
[sửa]Câu lệnh phức hợp được bọc trong dấu ngoặc {
và }
còn được gọi là khối mã. Các câu lệnh phức hợp trong C có dạng.
{ <danh sách khai báo tùy chọn> <đanh sách câu lệnh tùy chọn> }
Khối mã được dùng như là phần thân của một hàm hay đưọc đặt bất kì ở vị trí nào mà một câu lệnh đơn giản có thể đặt. Nghĩa là, về ý nghĩa văn phạm thì câu lệnh đơn giản và câu lệnh phức hợp là tương đương nhau.
Các mệnh đề biểu thức
[sửa]Một câu lệnh (hay một mệnh đề) của C có dạng:
<biểu thức tùy chọn>;
là một mệnh đề biểu thức. Nếu biểu thức này không có nội dung (mà chỉ còn lại dấu ;
thì biểu thức được gọi là mệnh đề null
(hay mệnh dề rỗng). (Theo ngôn ngữ máy Assembler thì mệnh đề null sẽ tương đương với câu lệnh NOP; chiếm 1 byte chỉ làm nhiệm vụ tăng địa chỉ của chồng (stack) lên 1 đơn vị.)
Các mệnh đề nhảy (hay bước nhảy)
[sửa]Các lệnh nhảy sẽ thay đổi dòng điều khiển một cách vô điều kiện. có 4 kiểu mệnh đề nhảy trong C là goto
, continue
, break
, và return
.
goto
[sửa]câu lệnh goto
sẽ có dạng:
goto <nhãn>;
nhãn phải có mặt trong hàm có chứa câu lệnh goto
. Khi đọc đến lệnh này, dòng điều khiển sẽ chuyển đến mệnh đề nhãn.
continue
[sửa]Mệnh đề continue
chỉ có thể xuất hiện trong một vòng lặp và có tác dụng làm cho dòng điều khiển chuyển sang chu kì mới của vòng lặp trong cùng nhất (có chứa câu lệnh). Các dạng sử dụng bao gồm
while (expression) { /* ... */ cont: ; }
do { /* ... */ cont: ; } while (expression);
for (optional-expr; optexp2; optexp3) { /* ... */ cont: ; }
break
[sửa]Mệnh đề break
dùng để kết thúc một câu lệnh vòng lặp hay câu lệnh switch
ngay lập tức và chuyển tiếp đến câu lệnh tiếp theo sau của vòng lặp đó.
return
[sửa]Một hàm trả dòng điều khiển về nơi gọi nó bằng câu lệnh return
. Khi lệnh return
được theo sau bởi một biểu thức thì biểu thức đó sẽ được đánh giá và giá trị này sẽ được trả về cho nơi đã gọi hàm. Khi return được gọi mà không có biểu thức đi kèm thì giá trị trả về là không xác định.