PowerPoint Presentation Nhập môn về lập trình (C4) Slide 1 Chương 4 Lệnh if else Lệnh switch Presenter Nhập môn về lập trình (C4) Slide 2 Learning outcomes L O 3 1 – Liệt kê được các kiểu điều khiể[.]
Trang 1Chương 4
Lệnh if-else
Lệnh switch
Presenter:
Trang 2Learning outcomes
L.O.3.1 – Liệt kê được các kiểu điều khiển và vẽ sơ đồ mô
tả chúng
L.O.3.2 – Mô tả được được nguyên tắc kết hợp các kiểu
điều khiển để mô tả các giải thuật
L.O.3.3 – Hiện thực được các kiểu điều khiển bằng ngôn
ngữ C
L.O.3.4 – Sử dụng các cấu trúc điều khiển để giải quyết bài
toán thực tế
Trang 3Cấu trúc lựa chọn if-else
Cú pháp và vận hành
Cho phép dựa vào giá trị luận lý đúng/sai để quyết định thi hành 1 trong 2 nhánh lệnh và bỏ qua nhánh còn lại
Cú pháp:
• condition là biểu thức luận lý miêu tả điều kiện cần kiểm tra
• statement1 ( statement2 ) là lệnh thực thi (nếu muốn dùng nhiều
lệnh thì đặt trong dấu ghép { })
• Khi chạy, nếu condition có giá trị đúng thì làm statement1 , ngược
lại làm statement2
• Dấu [ ] cho biết lệnh if có thể không có else và statement2
Lệnh if có thể được viết trên cùng 1 dòng hay trên nhiều dòng
if (condition) statement1 [else statement2]
Trang 4Cấu trúc lựa chọn if-else
Lưu đồ vận hành
Lưu đồ giải thích hoạt động của lệnh if else
condition
statement1
Sai
Đúng
Không có else
condition
statement1
Sai
Đúng statement2
Có else
Trang 5Cấu trúc lựa chọn if-else
Ví dụ
// Giải phương trình bậc 2
delta = b * b – 4 * a * c;
if (delta >= 0 )
{ // co 2 nghiem thuc
x1 = (-b+sqrt(delta))/2.0/a;
x2 = (-b-sqrt(delta))/(2.0*a);
printf("Nghiem x1 = %f, x2 = %f\n", x1,x2);
} else // thong bao vo nghiem
printf("Phuong trinh vo nghiem.\n");
Trang 6if-else lồng nhau
Khi có nhiều điều kiện, có thể dùng if-else lồng nhau
<đ.kiện1> ?
M lệnh
N lệnh
Sai
Đúng
If
else if
<đ.kiện2> ?
Đúng
Sai
P lệnh
else
Trang 7if-else lồng nhau
Ví dụ
Tìm số lớn nhất trong 3 số nhập vào
Trang 8if-else
Ghép điều kiện bằng toán tử luận lý
Ta có thể dùng toán tử luận lý để ghép các điều kiện lại
và giảm bớt số lệnh if-else sử dụng trong ví dụ trên
Trang 9Biểu thức điều kiện
Biểu thức điều kiện sử dụng toán tử ? : để cung cấp giá
trị
Cú pháp : <điều kiện> ?<trị 1>:<trị 2>
nghĩa là nếu <điều kiện> đúng thì trả về <trị 1>, ngược lại trả về <trị 2>
Ví dụ : lệnh if
if (hours > 40) rate = 0.45; else rate = 0.02;
có thể thay bằng :
rate = (hours > 40) ? 0.45 : 0.02;
Trang 10Cấu trúc lựa chọn switch
Cú pháp
Cú pháp :
switch (expression)
{ case constant-expression1 : [ n1 statements ] [ break; ]
case constant-expression2 : [ n2 statements ] [ break; ]
[default : [n statements ] ]
}
• expression là 1 biểu thức thuộc kiểu dữ liệu đếm được như char, short,
enum
• n1, n2 là danh sách các lệnh thực thi VC++
• Khi giá trị của expression bằng với constant-expression của nhánh nào thì
Trang 11Cấu trúc lựa chọn switch
Lưu đồ vận hành
Expression
Trị 1
statement1
Trị 2
statement1
Trị n
Trang 12Cấu trúc lựa chọn switch
Ví dụ
Trang 13Cấu trúc lựa chọn switch
Kết quả chạy ví dụ
Trang 14if-else đối với switch
if (cond) state1 else state2 ;
switch (cond)
{ case 1 : state1 ; break;
case 2 : state2 ; break;
Trong C++, 2 lệnh if-else và switch là tương đương
nhau, if-else có thể thay thế switch và ngược lại :
{ case 0 : state2; break;
default : state1;
}
if (cond == 1 ) state1 ; else if (cond == 2 )