Ngôn ngữ lập trình - Chương II: Luồng điều khiển - Nguyễn Xuân Hùng

Tài liệu Ngôn ngữ lập trình - Chương II: Luồng điều khiển - Nguyễn Xuân Hùng: Giảng viên: Nguyễn Xuân Hùng Mobile: 0908 386 366 Email: nguyenxuanhung@wru.vn CHƯƠNG II. LUỒNG ĐIỀU KHIỂN NGÔN NGỮ LẬP TRÌNH Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi NỘI DUNG 1. Biểu thức Boolean. 2. Cấu trúc rẽ nhánh. 3. Vòng lặp. 12/24/20142 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 1. Biểu thức Boolean • Một biểu thức Boolean là một biểu thức có giá trị true hoặc false. • Các toán tử dùng trong biểu thức boolean: • Toán tử quan hệ: >, = , <=, != (khác), == (bằng), ! (đảo) • Toán tử boolean: && (và), || (hoặc) Ví dụ: (x > 2) && (y != 5) (x == 1) || ( y <= 10) 12/24/20143 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 1. Biểu thức Boolean 1.1 Đánh giá biểu thức boolean • Bạn có thể gán biểu thức boolean cho biến kiểu bool Ví dụ: bool result = (x < y) && ( z < y); • Cách đánh giá biểu thức boolean Ví dụ với biểu thức toán học: (x + 1) * (x + 3) với x= 2 ta được kết quả là 15. Ví dụ với biểu thức boolean: !( ( y 7) ) với y ...

pdf38 trang | Chia sẻ: putihuynh11 | Lượt xem: 663 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Ngôn ngữ lập trình - Chương II: Luồng điều khiển - Nguyễn Xuân Hùng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giảng viên: Nguyễn Xuân Hùng Mobile: 0908 386 366 Email: nguyenxuanhung@wru.vn CHƯƠNG II. LUỒNG ĐIỀU KHIỂN NGÔN NGỮ LẬP TRÌNH Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi NỘI DUNG 1. Biểu thức Boolean. 2. Cấu trúc rẽ nhánh. 3. Vòng lặp. 12/24/20142 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 1. Biểu thức Boolean • Một biểu thức Boolean là một biểu thức có giá trị true hoặc false. • Các toán tử dùng trong biểu thức boolean: • Toán tử quan hệ: >, = , <=, != (khác), == (bằng), ! (đảo) • Toán tử boolean: && (và), || (hoặc) Ví dụ: (x > 2) && (y != 5) (x == 1) || ( y <= 10) 12/24/20143 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 1. Biểu thức Boolean 1.1 Đánh giá biểu thức boolean • Bạn có thể gán biểu thức boolean cho biến kiểu bool Ví dụ: bool result = (x < y) && ( z < y); • Cách đánh giá biểu thức boolean Ví dụ với biểu thức toán học: (x + 1) * (x + 3) với x= 2 ta được kết quả là 15. Ví dụ với biểu thức boolean: !( ( y 7) ) với y = 8 kết quả là false; 12/24/20144 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 1. Biểu thức Boolean 1.1 Đánh giá biểu thức boolean • Bảng chân lý một số phép toán: 12/24/20145 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi Biểu thức A Biểu thức B A && B A || B ! A false false false false true false true false true true true false false true false true true true true false 1. Biểu thức Boolean 1.2 Quy tắc ưu tiên của biểu thức boolean • Nếu trong biểu thức boolean không có đầy đủ dấu ngoặc, thứ tự ưu tiên phép toán như sau: • Phép đảo: ! • Các phép toán quan hệ: >, =, <=, ==, • Các phép toán boolean: &&, || • Chú ý: Cách tốt nhất là chúng ta nên để dấu ngoặc đơn • Ví dụ: (temperature > 90) && (humidity > 0.90) && (poolGate == OPEN) 12/24/20146 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 1. Biểu thức Boolean 1.2 Quy tắc ưu tiên của biểu thức boolean • Toán tử có độ ưu tiên hơn được thực thi trước và các toán tử có cùng độ ưu tiên được thực thi từ phải qua trái. Ví dụ: x = y = z có nghĩa là x = (y = z). Bảng độ ưu tiên của các toán tử: • Các toán hạng hai ngôi khác mà có cùng độ ưu tiên sẽ được thực thi từ trái qua phải. Ví dụ: x + y + z sẽ có nghĩa là (x + y) + z. 12/24/20147 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 1. Biểu thức Boolean 1.2 Quy tắc ưu tiên của biểu thức boolean • Ví dụ khác: x + 1 > 2 || x + 1 < -3  Qui tắc quyền ưu tiên nói rằng đầu tiên áp dụng toán tử một ngôi -, sau đó áp dụng +, sau đó là > và < và cuối cùng là áp dụng ||.  Biểu thức trên tương ứng với biểu thức đầy đủ dấu ngoặc sau: ((x + 1) > 2) || ((x + 1) < -3) 12/24/20148 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 1. Biểu thức Boolean 1.3 Bài tập kiểm tra. Bài tập 1. (click here) 12/24/20149 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.1 Câu lệnh if - else • Câu lệnh if-else sẽ chọn giữa hai hành động khác nhau dựa trên giá trị của biểu thức Boolean • Cú pháp: if (Biểu_thức_Boolean) Câu_lệnh_khi _đúng else Câu_lệnh_khi _sai 12/24/201410 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.1 Câu lệnh if - else • Ví dụ: if (hours > 40) grossPay = rate * 40 + 1.5 * rate * (hours – 40); else grossPay = rate * hours; 12/24/201411 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.1 Câu lệnh if - else • Kết hợp nhiều câu lệnh chúng ta sử dụng cặp ngoặc {} với cú pháp như sau: if (Biểu_thức_Boolean) { Câu_lệnh_khi _đúng_1; Câu_lệnh_khi _đúng_2; } else { Câu_lệnh_khi _sai_1; Câu_lệnh_khi _sai_2; } 12/24/201412 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.1 Câu lệnh if - else Bài tập 2. (Click Me) 12/24/201413 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.2 Câu lệnh if không có else • Cú pháp: if (Biểu_thức_Boolean_1) Câu_lệnh_1; Hoặc: if (Biểu_thức_Boolean_1) { Câu_lệnh_1; Câu_lệnh_2; } 12/24/201414 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.2 Câu lệnh if không có else • Ví dụ: if (sales >= minimum) salary = salary + bonus; cout << “salary = $” << salary; 12/24/201415 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.3 Câu lệnh if-else lồng nhau • Cú pháp: if (Biểu_thức_Boolean_1) Câu_lệnh_1 else if (Biểu_thức_Boolean_2) Câu_lệnh_2 . . . else if (Biểu_thức_Boolean_n) Câu_lệnh_n else Câu _lệnh_cho_các_trường_hợp_còn_lại 12/24/201416 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.3 Câu lệnh if-else lồng nhau  Ví dụ: if ((temperature < -10) && (day == SUNDAY)) cout << "Stay home."; else if (temperature < -10) //và day != SUNDAY cout << "Stay home, but call work."; else if (temperature = -10 cout << "Dress warm."; else //temperature > 0 cout << "Work hard and play hard."; 12/24/201417 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.3 Câu lệnh if-else lồng nhau  Bài tập 3. (Click Me). 12/24/201418 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.4 Câu lệnh switch • Khi một câu lệnh switch được thực thi, một trong số các nhánh khác nhau sẽ được thực thi. Việc lựa chọn nhánh nào để thực thi được dựa trên biểu thức điều khiển nằm trong cặp ngoặc đơn sau từ khóa switch. • Biểu thức điều khiển cho một câu lệnh switch phải trả về hoặc là một giá trị bool hoặc một bộ liệt kê các hằng số, hoặc một giá trị kiểu số nguyên hoặc một kí tự. 12/24/201419 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.4 Câu lệnh switch • Cú pháp: switch (Biểu_thức_điều_khiển) { case Hằng_số_1: Dãy_câu_lệnh_1 break; case Hằng_số_2: Dãy_câu_lệnh_2 break; . . . case Hằng_số_n: Dãy_câu_lệnh_n break; default: Dãy_câu_lệnh_mặc_định } 12/24/201420 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.4 Câu lệnh switch • Ví dụ: 12/24/201421 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi Click Me to Demo 2. Cơ chế rẽ nhánh 2.5 Kiểu liệt kê • Một kiểu liệt kê là một kiểu mà các giá trị của nó được định nghĩa bằng một danh sách các hằng số kiểu int. • Ví dụ: enum Direction { NORTH = 0, SOUTH = 1, EAST = 2, WEST= 3}; Tương đương với: enum Direction {NORTH, SOUTH, EAST, WEST}; • Nếu bạn không chỉ rõ các giá trị dạng số, mặc định gán cho các giá trị liên tiếp, bắt đầu bằng 0 và tăng lên 1 cho các giá trị tiếp theo 12/24/201422 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.5 Kiểu liệt kê • Ví dụ: enum MyEnum { ONE = 17, TWO, THREE, FOUR = -3, FIVE }; Kết quả trong các biến: ONE = 17, TWO = 18, THREE = 19, FOUR = -3, FIVE = -2 • Đây là một kiểu riêng biệt, sử dụng kiểu liệt kê như là các nhãn và tránh thực hiện các phép toán số học với các biến của kiểu liệt kê này. 12/24/201423 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.6 Toán tử điều kiện • Chúng ta có thể nhúng một điều kiện vào bên trong một biểu thức bằng cách sử dụng một toán tử ba ngôi, nó được biết đến với tên là toán tử điều kiện (còn được gọi là toán tử ba ngôi hay toán tử số học if). • Ví dụ: max = (n1 > n2) ? n1 : n2 ; Tương đương với: if (n1 > n2) max = n1; else max = n2; 12/24/201424 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 2. Cơ chế rẽ nhánh 2.6 Toán tử điều kiện • Bài tập 4: (Click Me) 12/24/201425 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.1 Vòng lặp while và do-while • Cú pháp vòng lặp while • Với nhiều câu lệnh ở thân: 12/24/201426 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.1 Vòng lặp while và do-while • Câu lệnh trong thân vòng lặp sẽ được thực thi khi biểu thức điều kiện còn đúng. • Ví dụ: (Click Me) 12/24/201427 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.1 Vòng lặp while và do-while • Cú pháp vòng lặp do-while • Với nhiều câu lệnh ở thân 12/24/201428 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.1 Vòng lặp while và do-while • Đối với vòng lặp do-while sẽ được thực thi trong thân một lần sau đó mới kiểm tra biểu thức điều kiện. Thân vòng lặp sẽ được thực thi lặp lại khi biểu thức điều kiện còn đúng. • Ví dụ: (Click Me) • Bài tập 5: (Click Me) 12/24/201429 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.2 Toán tử dấu phẩy • Toán tử dấy phẩy là cách đánh giá một danh sách các biểu thức và trả lại giá trị của biểu thức cuối cùng. • Ví dụ: result = (first = 2, second = first + 1);  Toán tử dấu phẩy được thể hiện bằng dấu phẩy. Biểu thức dấu phẩy là biểu thức ở bên tay phải toán tử gán. Toán tử dấu phẩy có hai biểu thức được gọi là các toán hạng. Trong trường hợp này hai toán hạng là first = 2 và second = first + 1 12/24/201430 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.2 Toán tử dấu phẩy • Toán hạng đầu tiên được tính toán và sau đó toán hạng thứ hai được tính toán. Kết quả là: result = 3; • Nếu thứ tự tính toán là quan trọng thì bạn nên sử dụng dấu ngoặc đơn. Ví dụ: result=((first = 2, second = first + 1),third = second + 1); Kết quả: result = 4; 12/24/201431 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.3 Nhắc lại về toán tử tăng, giảm • Thông thường chúng ta được khuyến cáo không nên dùng toán tử tăng và toán tử giảm ở trong các biểu thức. Tuy vậy nhiều lập trình viên thích sử dụng chúng trong biểu thức Boolean điều khiển của câu lệnh while hoặc câu lệnh do- while • Ví dụ: Sử dụng toán tử tăng, tính tổng lượng Calo sử dụng trong ngày, với số lượng calo của từng bữa ăn được nhập từ bàn phím. (Click Me) 12/24/201432 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.4 Vòng lặp for • Câu lệnh for được sử dụng nhiều nhất để duyệt qua các biến số nguyên có giá trị tăng dần đều. • Ví dụ: Tính tổng các số nguyên từ 1 đến 10 12/24/201433 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.4 Vòng lặp for • Cú pháp: • Biểu thức đầu tiên nói rõ biến, các biến hoặc các phần tử khác được khởi tạo như thế nào; biểu thức thứ hai là một biểu thức Boolean được sử dụng để kiểm tra xem khi nào quá trình lặp nên kết thúc; và biểu thức cuối cùng nói rõ làm thế nào mà biến điều khiển lặp được cập nhật sau mỗi bước lặp lại thân vòng lặp. 12/24/201434 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.4 Vòng lặp for • Ví dụ: bạn có thể khởi tạo biến sum vào trong vòng lặp for như sau: • Câu lệnh trên tương đương với: • Chúng ta cũng có thể khai báo và khởi tạo biến ngay trong vòng lặp 12/24/201435 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.4 Vòng lặp for • Bài tập 6: (Click Me) 12/24/201436 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 3. Vòng lặp 3.5 Câu lệnh break và continue • Break và continue để biến đổi luồng điều khiển trong vòng lặp for, while, do-while • break: kết thúc vòng lặp. • continue: kết thúc vòng lặp hiện tại và tiếp tục vòng lặp tiếp theo. • Ví dụ 1: Tính tổng các số âm nhập từ bàn phím (cho phép 4 số), nếu nhập sai thì đưa ra tổng của các số âm trước đó (dùng break). (Click Me) • Ví dụ 2: Tính tổng các số âm nhập từ bàn phím (cho phép 4 số), nếu nhập sai cho phép lại (dùng continue). (Click Me) 12/24/201437 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi EOF! 12/24/2014Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi38

Các file đính kèm theo tài liệu này:

  • pdfnnlt_1_luongdieukhien_6592_1993525.pdf