Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Baigiang03 cac cau lenh dieu khien
1. Trường Đại học Sư phạm
Khoa Tin
học
Bài giảng 03
Các câu lệnh điều khiển chương trình
2. Nội dung
• Cấu trúc tuần tự
• Cấu trúc điều kiện (quyết định)
• Cấu trúc lặp
• Ngắt vòng lặp – break
• Kết thúc chương trình
• Vòng lặp lồng nhau
• Một số lưu ý
về các cấu trúc
2014 Nguyễn
Thanh
Tuấn 2
3. Cấu trúc tuần tự
2014 Nguyễn
Thanh
Tuấn 3
• Chương trình là một dãy các câu lệnh
• Các câu lệnh được thực thi tuần từ theo thứ
tự được viết.
4. Cấu trúc điều kiện (quyết định)
2014 Nguyễn
Thanh
Tuấn 4
• Các cấu trúc điều kiện:
if-‐then, if-‐then-‐
else, nested-‐if (if-‐elseif-‐elseif-‐...-‐else), switch-‐
case,
và biểu thức điều kiện.
5. Cấu trúc điều kiện (quyết định)
2014 Nguyễn
Thanh
Tuấn 5
Cú pháp Ví dụ
//
if-‐then
if
(
booleanExpression )
{
true-‐block
;
}
if
(mark
>=
50)
{
printf("Congratulation!n");
printf("Keep
it
up!n");
}
6. Cấu trúc điều kiện (quyết định)
2014 Nguyễn
Thanh
Tuấn 6
Cú pháp Ví dụ
// if-‐then-‐else
if ( booleanExpression ) {
true-‐block ;
} else {
false-‐block ;
}
if (mark >= 50) {
printf("Congratulation!n");
printf("Keep it up!n");
} else {
printf("Try Harder!n");
}
7. Cấu trúc điều kiện (quyết định)
2014 Nguyễn
Thanh
Tuấn 7
Cú pháp Ví dụ
// nested-‐if
if ( booleanExpr-‐1 ) {
block-‐1 ;
} else if ( booleanExpr-‐2 ) {
block-‐2 ;
} else if ( booleanExpr-‐3 ) {
block-‐3 ;
} else if ( booleanExpr-‐4 ) {
......
} else {
elseBlock ;
}
if (mark >= 80) {
printf("An");
} else if (mark >= 70) {
printf("Bn");
} else if (mark >= 60) {
printf("Cn");
} else if (mark >= 50) {
printf("Dn");
} else {
printf("Fn");
}
8. Cấu trúc điều kiện (quyết định)
2014 Nguyễn
Thanh
Tuấn 8
Cú pháp Ví dụ
// switch-‐case
switch ( selector ) {
case value-‐1:
block-‐1; break;
case value-‐2:
block-‐2; break;
case value-‐3:
block-‐3; break;
......
case value-‐n:
block-‐n; break;
default:
default-‐block;
}
char oper; int num1, num2, result;
......
switch (oper) {
case '+':
result = num1 + num2; break;
case '-‐':
result = num1 -‐ num2; break;
case '*':
result = num1 * num2; break;
case '/':
result = num1 / num2; break;
default:
printf("Unknown operatorn");
}
9. Cấu trúc điều kiện (quyết định)
2014 Nguyễn
Thanh
Tuấn 9
• Toán tử điều kiện
Cú pháp booleanExpr ? trueExpr : falseExpr
Ví dụ
printf("%sn", (mark >= 50) ? "PASS" : "FAIL");
// in "PASS" hoặc "FAIL"
max = (a > b) ? a : b; // vế trái là a hoặc b
abs = (a > 0) ? a : -‐a; // vế phải là a hoặc -‐a
10. Cấu trúc điều kiện (quyết định)
• Ngoặc:
Ta
có thể bỏ ngoặc nếu chỉ có một lệnh
nằm trong khối lệnh.
2014 Nguyễn
Thanh
Tuấn 10
if (mark >= 50)
printf("PASSn"); // Có thể bỏ ngoặc nếu chỉ có một lệnh
else { // Nhiều hơn một dòng lệnh, cần có { }
printf("FAILn");
printf("Try Harder!n");
}
11. Cấu trúc lặp
2014 Nguyễn
Thanh
Tuấn 11
Cú pháp Ví dụ
// for-‐loop
for (init; test;
post-‐proc) {
body ;
}
// Sum from 1 to 1000
int sum = 0, number;
for (number = 1; number <= 1000; ++number) {
sum += number;
}
12. Cấu trúc lặp
2014 Nguyễn
Thanh
Tuấn 12
Cú pháp Ví dụ
// while-‐do
while ( condition ) {
body ;
}
int sum = 0, number = 1;
while (number <= 1000) {
sum += number;
++number;
}
13. Cấu trúc lặp
2014 Nguyễn
Thanh
Tuấn 13
Cú pháp Ví dụ
// do-‐while
do {
body ;
}
while ( condition ) ;
int sum = 0, number = 1;
do {
sum += number;
++number;
} while (number <= 1000);
14. Ngắt vòng lặp – break,
continue
• Lệnh break:
ngắt và thoát khỏi vòng lặp hiện
tại.
• Lệnh continue:
bỏ qua
vòng hiện tại và tiếp
tục ở
vòng mới.
• Chỉ sử dụng khi thật sự cần thiết,
có thể viết
chương trình mà không cần những lệnh này.
2014 Nguyễn
Thanh
Tuấn 14
15. Kết thúc chương trình
• Một số cách kết thúc chương trình:
– exit():
sử dụng hàm exit(int exitCode)
trong
<stdlib.h>
để kết thúc chương trình và quay
lại hệ
điều hành.
– Sử dụng exit(-‐1)
nếu kết thúc không bình thường
– abort():
giống exit(-‐1)
– return:
sử dụng trong hàm main().
2014 Nguyễn
Thanh
Tuấn 15
17. Một số lưu ý
về các cấu trúc
• Phạm
vi
của else:
• Vòng lặp vô hạn:
– while(1)
{
…
}
2014 Nguyễn
Thanh
Tuấn 17
if
(i ==
0)
if
(j
==
0)
printf("i and
j
are
zeron");
else
printf("i is
not
zeron");