LẬP TRÌNH C CHO
NGƯỜI MỚI HỌC
Giảng viên: Thạc sĩ Trần Thanh Sơn
Trường Đại Học Khoa Học Tự Nhiên
BÀI 3: CẤU TRÚC RẼ NHÁNH IF VÀ
SWITCH CASE
I. CẤU TRÚC IF … ELSE
if ( biểu thức điều kiện)
{
<Khối lệnh 1>
}
Else
{
Nếu biểu thức điều kiện đúng thì thực hiện
đúng thì thực hiện khối lệnh 1, sai thì thực
hiện khối lệnh 2. Khối lệnh 1, khối lệnh 2
có thể có nhiều cấu trúc if … else nữa
<Khối lệnh 2>
}
2
CẤU TRÚC RẼ NHÁNH IF … ELSE
Cấu phép toán logic
• > ; >=; < ; <=
• == so sánh bằng
• != So sánh khác
• ! Phép phủ định
• Ví dụ:
• If (a > b); if (a>= b); if (a!=b)
3
CẤU TRÚC RẼ NHÁNH IF … ELSE
Chú ý khi dùng if … else
• Câu lệnh if – else lồng nhau
• else sẽ kết hợp với if gần nhất
• Trong trường hợp if bên trong không có else thì phải viết nó trong cặp
dấu {} để tránh kết hợp sai ý muốn.
• Ví dụ : có 4 biến có giá trị sau: so1=4, so2=6, so3=9, a = 2
if(so1>0)
if(so2>so3)
a = so2;
else
a= so3;
if(so1>0)
{
if(so2>so3)
a = so2;
}
else
a= so3;
4
BÀI TẬP VỀ IF … ELSE
• Bài 1: Bài đổi tiền hôm trước. Kiểm tra người dùng nhập số âm
thì xuất câu thông báo: “Số tiền nhập vào phải là số nguyên
dương”
Giải pháp:
If (M <=0) in ra : xin nhập lại số tiền nguyên dương
else : thực hiện công việc đổi tiền như đã làm.
5
BÀI TẬP VỀ IF … ELSE (tt)
• Bài 2: Nhập vào 2 số, tìm số lớn nhất, nhỏ nhất.
Giải pháp:
Đầu vào: Cho 2 số: a, b
Xử lý: if (a>=b ) max = a; min = b;
else: max = b; min = a
Đầu ra: in ra màn hình max, min.
• Cải tiến: nhập vào 3 số, in ra max, min
6
BÀI TẬP VỀ IF … ELSE (tt)
• Bài 3: Nhập vào một số nguyên dương n với 1
n = 1, 2, 3, …7 hãy in Sunday, Monday, Tuesday, …Saturday ra
màn hình.
7
II. CẤU TRÚC SWITCH … CASE
switch (biểu thức)
{
case n1:
Các câu lệnh;
Trường hợp biểu thức có giá trị bằng n1
Break;
……….
case nk:
Các câu lệnh;
Trường hợp biểu thức có giá trị bằng nk
Break;
[Default: các câu lệnh]
}
Các trường hợp còn lại không bắt buộc
8
BÀI TẬP VỀ SWITCH … CASE
• Bài 1: Nhập vào một số nguyên dương n với 1
1, 2, 3, …7 hãy in Sunday, Monday, Tuesday, …Saturday ra màn
hình.
Giải pháp:
•
•
•
•
•
Nhập n, xét 8 trường hợp:
n = 1 : in “Sunday”
…
n=7: in “Saturday”
n<1 hoặc n>7: in ra giá trị không hợp lệ
9
BÀI TẬP VỀ SWITCH … CASE (tt)
• Bài 2: Nhập vào năm dương lịch (từ năm 1975) trở đi và in ra các
giải thể thao lớn được tổ chức trong năm.
Giải pháp: Nhận xét thấy rằng
• Các năm 1980,1984,1988, 1992, 1996… có tổ chức Olympic và
Euro (Những năm chia chẵn cho 4)
• Các năm 1990, 1994, 1998, …..có tổ chức World Cup (chia 4 dư
2)
• Các năm 1995, 1997, 1999, …có tổ chức SEA Games (năm lẻ,
chia 4 dư 1 hoặc 3)
• Các năm 1996, 1998, 2000 … có tổ chức Tiger Cup, nhưng chỉ
tính từ 1996 trở đi (các năm này chia chẵn cho 4 hoặc chia 4 dư 2)
10
BÀI TẬP VỀ SWITCH … CASE (tt)
• Ta có sơ đồ sau:
Năm % 4 =0: Olympic và Euro
Nếu năm >= 1996: Có Tiger Cup
Năm >= 1975 đúng
Năm % 4 = 1 hoặc 3: SEA Games
Năm % 4=2: có World Cup
Năm > = 1996: Có Tiger cup
Năm >=1975 Sai: Không xét
11