Chương 4

Lệnh if-else Lệnh switch

Presenter:

Nhập môn về lập trình (C4) Slide 1

Learning 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ế.

Nhập môn về lập trình (C4) Slide 2

Cú pháp và vận hành

Cấu trúc lựa chọn if-else

 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.

if (condition) statement1 [else statement2]

 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.

Nhập môn về lập trình (C4) Slide 3

Lưu đồ vận hành

Cấu trúc lựa chọn if-else

 Lưu đồ giải thích hoạt động của lệnh if ... else.

Sai

Sai

condition

condition

Đúng

Đúng

statement2 statement1 statement1

Không có else Có else

Nhập môn về lập trình (C4) Slide 4

Ví dụ

Cấu trúc lựa chọn if-else

x1 = (-b+sqrt(delta))/2.0/a; x2 = (-b-sqrt(delta))/(2.0*a); printf("Nghiem x1 = %f, x2 = %f\n", x1,x2);

// Giải phương trình bậc 2 delta = b * b – 4 * a * c; if (delta >= 0 ) { // co 2 nghiem thuc } else // thong bao vo nghiem

printf("Phuong trinh vo nghiem.\n");

Nhập môn về lập trình (C4) Slide 5

if-else lồng nhau

 Khi có nhiều điều kiện, có thể dùng if-else lồng nhau.

If

Sai

else if

Đúng

Sai

<đ.kiện1> ?

else

Đúng

M lệnh <đ.kiện2> ?

N lệnh P lệnh

Nhập môn về lập trình (C4) Slide 6

Ví dụ

if-else lồng nhau

 Tìm số lớn nhất trong 3 số nhập vào.

Nhập môn về lập trình (C4) Slide 7

Ghép điều kiện bằng toán tử luận lý

if-else

 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.

Nhập môn về lập trình (C4) Slide 8

Biể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ị.

<điều kiện>?:

 Cú pháp : nghĩa là nếu <điều kiện> đúng thì trả về , ngược lại

if (hours > 40) rate = 0.45; else rate = 0.02;

trả về  Ví dụ : lệnh if có thể thay bằng :

rate = (hours > 40) ? 0.45 : 0.02;

Nhập môn về lập trình (C4) Slide 9

Cú pháp

Cấu trúc lựa chọn switch

 Cú pháp :

switch (expression)

{ case constant-expression1 : [ n1 statements ] [ break; ]

case constant-expression2 : [ n2 statements ] [ break; ]

...

[default : [n statements] ]

}

enum.

• expression là 1 biểu thức thuộc kiểu dữ liệu đếm được như char, short,

• 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ì

nhánh đó được chạy.

• Lưu ý : cần phải dùng lệnh break; để kết thúc sự thi hành của mỗi nhánh

và bỏ qua các nhánh khác.

Nhập môn về lập trình (C4) Slide 10

Lưu đồ vận hành

Cấu trúc lựa chọn switch

Expression

Trị 1

Trị 2

Trị n

statement1 statement1 statement1

. . .

Nhập môn về lập trình (C4) Slide 11

Ví dụ

Cấu trúc lựa chọn switch

Nhập môn về lập trình (C4) Slide 12

Kết quả chạy ví dụ

Cấu trúc lựa chọn switch

Nhập môn về lập trình (C4) Slide 13

if-else đối với switch

 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 :

switch (cond) { case 0 : state2; break; default : state1; } if (cond == 1) state1; else if (cond == 2)

state2;

else state3;

if (cond) state1 else state2; switch (cond) { case 1 : state1; break; case 2 : state2; break; default : state3; }

Nhập môn về lập trình (C4) Slide 14