NMLT
C U TRÚC I U KHI N
Tr n Ph
c Tu n
C u trúc i u khi n
L nh r nhá
nhánh: if – else
L nh r nhi u nhá
nhánh: switch
Vòng l p: while, do while, for
Các t khóa: break và continue
NH P MÔN L P TRÌNH
12/23/2009
2
L nh r nhánh if
Cú pháp:
i u
ki n
if ( i u ki n)
NH P MÔN L P TRÌNH
0
0
S
&a,
&a, &b);
&b);
la:
la: %i\n“,
%i\n“, max);
max);
12/23/2009
3
uý
N u t d u ch m ph y (;) ngay sau bi u th c i u ki n
thì l nh S c a if xem nh “KHÔNG LÀM GÌ”
printf(“Nhap
printf(“Nhap mot
mot so
so nguyen:
nguyen: ");
");
scanf("%i",
L nh r nhánh if-else
Cú pháp:
if ( i u ki n)
S;
else Se;
Ph n l nh else có th thêm vào trong câu l nh
if
ch th các l nh th c hi n khi i u ki n
i u
ki n
0
0
Se
S
b ng 0 (FALSE).
scanf("%i
scanf("%i %i",
%i",
if(a
if(a >> b)
b)
max
max == a;
a;
0)
if(i
if(i >> 1000)
1000)
printf("i
printf("i
else
else
printf("i
printf("i
ii chap
chap nhan
nhan duoc
duoc
qua
qua lon\n");
lon\n");
chap
chap nhan
nhan duoc\n");
duoc\n");
int
int ii == -20;
-20;
if(i
>
0)
ii la
{
case gt1: S1; [break;]
case gt2: S2; [break;]
...
;]
case gtn: Sn; [break
[break;]
default: Se;
}
Bi u th c: cho k t qu S NGUYÊN; ph i
ngo c n ()
Si : dãy các l nh.
NH P MÔN L P TRÌNH
c
t gi a c p
12/23/2009
7
Ví d l nh switch
switch(c)
switch(c) {{
case
case 'a':
'a': case
case 'A':
'A':
khong hop
hop le\n");
le\n");
}}
NH P MÔN L P TRÌNH
12/23/2009
8
M ts
u ý – switch
N u không có giá tr nào kh p, các l nh trong ph n
default s
c th c thi; và n u không có default
c ng không x y ra l i.
L nh break r t quan tr ng.
ii
ii
ii
float
float f;
f;
ii == 3;
3;
switch(f)
case
case 4:
4:
case
case 5:
5:
case
case 6:
6:
case
case 7:
7:
case
case 8:
8:
case
case 9:
9:
}}
trinh
trinh doc
doc so
so 0..9
0..9
printf(“khong\n");
printf(“khong\n");
printf(“mot\n");
printf(“mot\n");
printf(“hai\n");
printf("j
== %i\n",
printf("j
%i\n", j);
j);
while(j
>
0)
while(j
>
0)
j--;
j--;
printf("j
== %i\n",
printf("j
%i\n", j--);
j--);
}}
0
jj
jj
jj
jj
jj
== 55
== 44
i l p trình c ý s d ng l nh r ng
int
int c,
c, j;
j;
while(scanf("%i",
while(scanf("%i", &j)
&j) !=
!= 1)
1)
while((c
while((c == getch())
getch()) !=
!= 27)
27)
;;
NH P MÔN L P TRÌNH
t d u ‘;’
t thúc while
không có S
13
12/23/2009
L nh l p do while
Cú pháp:
do
do
printf("j
printf("j == %i\n",
%i\n", j--);
j--);
while(j
while(j >> 0);
0);
printf("stop\n");
printf("stop\n");
NH P MÔN L P TRÌNH
start
start
jj == 55
jj == 44
jj == 33
jj == 22
jj == 11
stop
stop
15
12/23/2009
Ví d do while
int
int jj == -10;
L nh l p for
L nh l p for d n h t cá
các thà
thành ph n c a vòng l p và
vào trong
m t câu l nh.
Cú phá
pháp:
for (kh i
ng; i u ki n l p;
i u khi n)
S;
kh i
ng
i u
ki n
0
S
i u
khi n
0
NH P MÔN L P TRÌNH
printf("sine
of
%.1lf
is
%.2lf\n",
printf("sine of %.1lf is %.2lf\n",
angle,
angle, sin(angle));
sin(angle));
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
19
12/23/2009
Nói thêm v for
Ph n l nh kh i ng và l nh i u khi n có th g m nhi u
l nh n gi n, các l nh này cách nhau b i d u ph y (,)
int
int i,
i, j,
j, k;
k;
for(i
=
0,
12/23/2009
20
break
T khóa break ch th vi c thoát ngay l p t c kh i c u
trúc i u khi n.
u scanf tr
1,
ch ng trình thoát
C n th n khi s d ng!
kh i vòng l p for
for(;;)
for(;;) {{
printf(“nhap
printf(“nhap mm tt so
so nguyen:
nguyen: ");
");
if(scanf("%i",
if(scanf("%i", &j)
&j) ==
== 1)
1)
break;
break;
printf(“khong
printf(“khong hop
NH P MÔN L P TRÌNH
21
12/23/2009
continue
T khóa continue ch th
c nhanh
b t k phía sau ó còn nhi u l nh c n l p.
H n ch s d ng!
nb
cl pk ,
u j chia h t cho 3
thì b qua l nh in j
for(j
for(j == 1;
1; jj
Tóm l
c
if else:
else: r nhá
nhánh
switch r nhi u nhánh v i i u ki n là giá tr
c a bi u th c nguyên
while, do while, for – 3 lo i vòng l p c a C
break
continue
NH P MÔN L P TRÌNH
12/23/2009
23
M t s bài t p
1.
2.
3.
4.
5.
6.
7.
8.
không chia
NH P MÔN L P TRÌNH
c)
12/23/2009
24
1.
Vi t hà
hàm:
1.
2.
3.
4.
5.
2.
Truy n và
vào ký t và s n. In ra n ký t ó
In hcn cá
các d u * có
có kích th c m*n
In hcn r ng cá
các d u * có
có kích th c m*n
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
7. M t s bài t p
Tính s h ng th n c a dãy fibonaci (f0=f1=1, fn=fn-1+fn-2)
Tìm UCLN, BCNN c a hai s a,b ( C u trú
trúc Phân s )
Rút g n phân s
In ra cá
các c s c a n
T ng cá
các c s c a n, T ng cá
các s ch n