
1
LẬP TRÌNH CĂN BẢN
CÁC LỆNHCÓCẤU TRÚC
2
Nộidung chươngnày
lKhối lệnh trongC
lCấu trúc rẽnhánh
lCấu trúc lựa chọn
lCấu trúc vòng lặp
lCác câu lệnh“đặc biệt”
3
Khối lệnh trongC (1)
lLà1 dãy các khai báo cùng với các câu lệnh nằm
trong cặp dấu ngoặc móc {và }.
4
Khối lệnh trongC (2)
l1khối lệnh cóthểchứa nhiều khối lệnh khác gọi
là khối lệnh lồng nhau (không hạn chế).

5
Phạm vi các biến
lCóthểkhai báo các biến cùng
tên trong các khối.
lNếu một biến được khai báo bên
ngoài khối lệnh vàkhông trùng
tên với biến bên trong khối lệnh
thìnócũng dùng đượcbên trong
khối.
lMột khối lệnh con cóthểsử
dụng các biến bên ngoài, nhưng
điều ngược lại không đúng.
6
Cấu trúc rẽnhánh(if)
lStatement được thực hiện nếu boolean_expression cógiátrị
đúng (true), !=0.
lKhối else làtùy chọn
boolean_expression !=0 => Statement1 được thực hiện
boolean_expression ==0 => Statement2 được thực hiện
7
Vídụ-Lệnh if
#include <stdio.h>
#include <conio.h>
int main (){
float a;
printf("Nhapa = ");scanf("%f",&a);
if (a !=0 )
printf("Nghich dao cua%f la %f",a,1/a);
getch();
return 0;
}
8
Vídụ-Lệnh if-else
#include <stdio.h>
#include <conio.h>
int main (){
float a;
printf("Nhap a = "); scanf("%f",&a);
if (a !=0 )
printf("Nghich dao cua %f la %f",a,1/a);
else
printf(“Khong the tim duoc nghich dao cua a”);
getch();
return 0;
}

9
Câu lệnh vàkhối lệnh
lC cho phép nhóm các câu lệnh liên tiếp vào 1 khối.
l1 khối lệnh cóthể được dùng như 1 lệnh đơn.
lVídụ:
10
Nhầm lẫn khi dùng if
lChương trình trên sai ở đâu?
11
Chúý khi dùng if-else
lCâu lệnh if-else lồng nhau
lelse sẽkết hợp với if gần nhất chứa cóelse
lTrong trường if bên trong không có else thìphải viết nó
trong cặp dấu {} để tránh sựkết hợp else if sai.
lVídụ
12
Cấu trúc lựa chọn
(switch-case) (1)
lC cung cấp 1 cấu trúc đẹp -dùng 1 dãy các câu lệnh if.

13
Cấu trúc lựa chọn
(switch-case) (2)
lswitch-case cóthể đưa đến mã máy (machine code) hiệu quả
hơn (vìjump tables cóthể được dùng)
14
Cấu trúc lựa chọn
(switch-case) (3)
lCúpháp:
lTính giátrịcủa biểu thức expr trước.
lNếu giátrịexpr bằng value1 thìthực
hiện statement_sequence1 rồi thoát.
lNếu giátrịexpr khác value1 thìso
sánh nóvới value2, nếu bằng value2
thìthực hiện statement_sequence2 rồi
thoát.
lCứ như thế, so sánh tới giátrịn.
lNếu tất cảcác phép so sánh trên đều
sai thìthực hiện default_statements
của trường hợp default.
15
Cấu trúc lựa chọn
(switch-case) (4)
lCác chúý:
lKiểu của expr vàcác valuei phải làkiểu sốnguyên
(int, chat, long, …).
lNếu break/return vắng mặt, câu lệnh trong các case
bên dưới cóthể được thực hiện cho đến khi gặp
break/return hoặc kết thúc lệnh switch.
16
Vídụ-switch-case (1)

17
Vídụ-switch-case (2)
In ra sốngày
của 1 tháng
18
Cấu trúc lặp
lCho phép lặp lại thực hiện 1 công việc nhiều lần.
lCó2 loại:
lLặp với sốlần xác định
lfor
lLặp với sốlần không xác định
lwhile
ldo-while
19
Vòng lặp for (1)
lThứtựthực hiện:
B1: Tính giátrịbiểu thức 1
B2: Tính giátrịbiểu thức 2
lNếu giátrịbiểu thức 2 là
sai (==0) => thoát khỏi for
lNếu giátrịbiểu thức 2 là
đúng (!=0) => thực hiện
<Công việc>
B3: Tính giátrịbiểu thức 3
rồi quay lại B2
for (Biểu thức 1; biểu thức 2; biểu thức 3) <Công việc>;
20
Vòng lặp for (2)