Bài giảng Nhập môn tin học - Chương 4: Các cấu trúc điều khiển - Đào Nam Anh

 Cấu trúc lựa chọn  Câu lệnh if  Câu lệnh if – else  Câu lệnh với nhiều lệnh if  Câu lệnh if lồng nhau  Câu lệnh switch.  Vòng lặp  Vòng lặp „for‟ trong C  Toán tử „phẩy‟  Vòng lặp lồng nhau  Vòng lặp „while‟ và vòng lặp „do-while‟  Lệnh nhẩy  Các lệnh „break‟, „continue‟ và „goto‟  Hàm „exit()‟.  Các cấu trúc lựa chọn cho phép chúng ta thay đổi luồng chương trình. Dựa trên một điều kiện nào đó, một câu lệnh hay một chuỗi các câu lệnh có thể được thực hiện hoặc không.  Hầu hết các ngôn ngữ lập trình đều sử dụng lệnh if để đưa ra điều kiện. Nguyên tắc thực hiện như sau nếu điều kiện đưa ra là đúng (true), chương trình sẽ thực hiện một công việc nào đó, nếu điều kiện đưa ra là sai (false), chương trình sẽ thực hiện một công việc khác.

pdf126 trang | Chia sẻ: candy98 | Lượt xem: 454 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Nhập môn tin học - Chương 4: Các cấu trúc điều khiển - Đào Nam Anh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NHẬP MÔN TIN HỌC CÁC CẤU TRÚC ĐIỀU KHIỂN TS Đào Nam Anh Tài liệu Slides do TS.Đào Nam Anh thực hiện dựa trên tài liệu [1] và các mã nguồn [2]: 1. TS.Nguyễn Thị Thu Hà, TS.Nguyễn Hữu Quỳnh, TS.Nguyễn Thị Thanh Tân, Giáo trình Nhập môn tin học, Khoa CNTT, Đại học Điện lực, 2013 2. Programiz.com CNTT Nhập môn tin học 2 Nội dung CÁC CẤU TRÚC ĐIỀU KHIỂN U C A N NG P C NH Y CNTT Nhập môn tin học 3 CÁC CẤU TRÚC ĐIỀU KHIỂN GIỚI THIỆU  Cấu trúc lựa chọn  Câu lệnh if  Câu lệnh if – else  Câu lệnh với nhiều lệnh if  Câu lệnh if lồng nhau  Câu lệnh switch.  Vòng lặp  Vòng lặp „for‟ trong C  Toán tử „phẩy‟  Vòng lặp lồng nhau  Vòng lặp „while‟ và vòng lặp „do-while‟  Lệnh nhẩy  Các lệnh „break‟, „continue‟ và „goto‟  Hàm „exit()‟. 4 CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N  Các cấu trúc lựa chọn cho phép chúng ta thay đổi luồng chương trình. Dựa trên một điều kiện nào đó, một câu lệnh hay một chuỗi các câu lệnh có thể được thực hiện hoặc không.  Hầu hết các ngôn ngữ lập trình đều sử dụng lệnh if để đưa ra điều kiện. Nguyên tắc thực hiện như sau nếu điều kiện đưa ra là đúng (true), chương trình sẽ thực hiện một công việc nào đó, nếu điều kiện đưa ra là sai (false), chương trình sẽ thực hiện một công việc khác. 5 CNTT Nhập môn tin học CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ : Để xác định một số là số n hay số lẻ, ta thực hiện như sau: 1. Nhập vào một số. 2. Chia số đó cho 2 để xác định số dư. 3. Nếu số dư của phép chia là 0, đó là số “Chẵn” HOẶC nếu số dư của phép chia khác 0, đó là số “Lẻ”. Bước 2 trong giải thuật trên kiểm tra phần dư của số đó khi chia cho 2 có bằng 0 không? Nếu đúng, ta thực hiện việc hiển thị thông báo đó là số chẵn. Nếu số dư đó khác 0, ta thực hiện việc hiển thị thông báo đó là số lẻ. 6 CNTT Nhập môn tin học CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Trong C một điều kiện được coi là đúng (true) khi nó có giá trị khác 0, là sai (false) khi nó có giá trị bằng 0. C cung cấp hai dạng câu lệnh lựa chọn:  Câu lệnh if  Câu lệnh switch Sau đây chúng ta hãy tìm hiểu hai câu lệnh lựa chọn này. 7 CNTT Nhập môn tin học CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Câu lệnh if  Câu lệnh if cho phép ta đưa ra các quyết định dựa trên việc kiểm tra một điều kiện nào đó là đúng (true) hay sai (false).  Sơ đồ quy trình thực hiện của câu lệnh if. Khi xét điều kiện, nếu điều kiện trong trường hợp đúng công việc sẽ được thực hiện, còn nếu điều kiện sai, chương trình sẽ không thực hiện gì cả. 8 Điều kiện Công việc Nếu điều kiện đúng Nếu điều kiện sai CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N  Dạng tổng quát của câu lệnh if: if (biểu thức) Các câu lệnh;  Biểu thức phải luôn được đặt trong cặp dấu ngoặc (). Mệnh đề theo sau từ khoá if là một điều kiện (hoặc một biểu thức điều kiện) cần được kiểm tra. Tiếp đến là một lệnh hay một tập các lệnh sẽ được thực thi khi điều kiện (hoặc biểu thức điều kiện) có kết quả true. 9 CNTT Nhập môn tin học CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ: #include void main() { int a = 10, b = 2, max; if (a > b){ max = a ; printf(“The max value is: %d”, max) ; } } 10 CNTT Nhập môn tin học CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ: #include void main() { int a = 10, b = 2, max; if (a > b){ max = a ; printf(“The max value is: %d”, max) ; } } 11 CNTT Nhập môn tin học  Với a được gán giá trị 10, b được gán giá trị 2, biểu thức điều kiện (a>b) có giá trị đúng. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ: #include void main() { int a = 10, b = 2, max; if (a > b){ max = a ; printf(“The max value is: %d”, max) ; } } 12 CNTT Nhập môn tin học  Với a được gán giá trị 10, b được gán giá trị 2, biểu thức điều kiện (a>b) có giá trị đúng.  Do đó khối lệnh gắn với biểu thức if được thực thi và kết quả của chương trình như sau: The max value is: 10 CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ: #include void main() { int a = 10, b = 2, max; if (a > b){ max = a ; printf(“The max value is: %d”, max) ; } } 13 CNTT Nhập môn tin học  Khối lệnh sau lệnh if được đặt trong cặp ngoặc nhọn {}. Khi có nhiều lệnh cần được thực hiện, các câu lệnh đó được coi như một khối lệnh (block) và phải được đặt trong cặp dấu {}. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ: #include void main() { int a = 10, b = 2, max; if (a > b) max = a ; } 14 CNTT Nhập môn tin học  Khối lệnh sau lệnh if được đặt trong cặp ngoặc nhọn {}. Khi có nhiều lệnh cần được thực hiện, các câu lệnh đó được coi như một khối lệnh (block) và phải được đặt trong cặp dấu {}.  Nếu trong ví dụ trên ta không đưa vào dấu ngoặc nhọn ở câu lệnh if, chỉ có câu lệnh đầu tiên (max = a) được thực hiện khi điều kiện trong câu lệnh if là đúng. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ: #include void main() { int a = 10, b = 2, max; if (a > b && (a>3 || b<5)) max = a ; } 15 CNTT Nhập môn tin học  Nếu có nhiều biểu thức điều kiện cần kiểm tra, tùy vào trường hợp ta kết hợp các biểu thức dưới dạng phép (AND) ký hiệu &&, phép (OR) ký hiệu ||. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N 16 CNTT Nhập môn tin học Ví dụ: kiểm tra một năm có phải là năm nhuận hay không. Năm nhuận là năm chia hết cho 4 hoặc 400 nhưng không chia hết cho 100. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N #include void main() { int y; printf(“\nPlease enter a year:”); scanf(“%d”, &y); if (y% 4 == 0 && y % 100 != 0 || y % 400 == 0) printf(“\n%d is a leap year!”, y); getch(); } 17 CNTT Nhập môn tin học Ví dụ: kiểm tra một năm có phải là năm nhuận hay không. Năm nhuận là năm chia hết cho 4 hoặc 400 nhưng không chia hết cho 100. Chúng ta sử dụng lệnh if để kiểm tra điều kiện. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N #include void main() { int y; printf(“\nPlease enter a year:”); scanf(“%d”, &y); if (y% 4 == 0 && y % 100 != 0 || y % 400 == 0) printf(“\n%d is a leap year!”, y); getch(); } 18 CNTT Nhập môn tin học  Ví dụ: kiểm tra một năm có phải là năm nhuận hay không.  Năm nhuận là năm chia hết cho 4 hoặc 400 nhưng không chia hết cho 100.  Chúng ta sử dụng lệnh if để kiểm tra điều kiện.  Chương trình trên cho ra kết quả như sau: Please enter a year: 2012 2012 is a leap year! CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N #include void main() { int y; printf(“\nPlease enter a year:”); scanf(“%d”, &y); if (y% 4 == 0 && y % 100 != 0 || y % 400 == 0) printf(“\n%d is a leap year!”, y); getch(); } 19 CNTT Nhập môn tin học Điều kiện year % 4 == 0 && year % 100 != 0 || year % 400 == 0 trả về giá trị 1 nếu năm đó là năm nhuận. Khi đó, chương trình hiển thị thông báo gồm biến year và dòng chữ “is a leap year”. Nếu điều kiện trên không thỏa mãn, chương trình không hiển thị thông báo nào. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Câu lệnh if...then...else  Ở trên ta đã biết dạng đơn giản nhất của câu lệnh if, cho phép ta lựa chọn để thực hiện hay không một câu lệnh hoặc một chuỗi các lệnh.  C cũng cho phép ta lựa chọn trong hai khối lệnh để thực hiện bằng cách dùng cấu trúc if – else như sau: 20 Điều kiện Công việc 2 Nếu điều kiện đúng Công việc 1 Nếu điều kiện sai CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Cú pháp câu lệnh rẽ nhánh dạng này được mô tả như sau: if (biểu thức) câu_lệnh_1; else câu_lệnh_2; 21 CNTT Điều kiện Công việc 2 Nếu điều kiện đúng Công việc 1 Nếu điều kiện sai CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Cú pháp câu lệnh rẽ nhánh dạng này được mô tả như sau: if (biểu thức) câu_lệnh_1; else câu_lệnh_2; 22 CNTT Nhập môn tin học  Nếu biểu thức có giá trị đúng (khác 0) thì câu lệnh 1 được thực hiện.  Nếu sai (bằng 0), câu lệnh 2 được thực hiện.  Khi có nhiều lệnh cần được thực hiện, các câu lệnh đó được coi như một khối lệnh (block) và phải được đặt trong cặp dấu {}. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ: #include void main() { int a = 10, b = 2, max; if (a > b) max = a ; } 23 CNTT Nhập môn tin học  Trở lại đoạn mã trong ví ở trên, dễ dàng nhận thấy biến max chỉ được gán giá trị khi a > b.  Trong trường hợp ngược lại, sẽ không có thông báo nào được sinh ra hay nói một cách khác là đoạn mã này chưa thực hiện được yêu cầu tìm số lớn nhất trong 2 số a và b bất kỳ. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Ví dụ: #include void main() { int a = 10, b = 2, max; printf(“Input a = ” ) ; scanf(“%d”, &a); printf(“Input b = ” ) ; scanf(“%d”, &b ) ; if (a > b) max = a; else max = b; printf(“The max value is: %d”, max); } 24  Trở lại đoạn mã trong ví ở trên, dễ dàng nhận thấy biến max chỉ được gán giá trị khi a > b.  Trong trường hợp ngược lại, sẽ không có thông báo nào được sinh ra hay nói một cách khác là đoạn mã này chưa thực hiện được yêu cầu tìm số lớn nhất trong 2 số a và b bất kỳ.  Điều đó được khắc phục rất đơn giản bằng cấu trúc if-else CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N #include void main() { int y; printf(“\nPlease enter a year:”); scanf(“%d”, &y); if (y% 4 == 0 && y % 100 != 0 || y % 400 == 0) printf(“\n%d is a leap year!”, y); getch(); } 25 CNTT Nhập môn tin học  Đoạn mã này chỉ hiển thị thông báo “is a leap year” ra màn hình nếu là năm nhuận.  Trong trường hợp ngược lại, nếu năm nhập vào không phải là năm nhuận, sẽ không có bất kỳ thông báo nào được in ra.  Điều này có thể gây ra sự hiểu lầm và đôi chút khó chịu cho người sử dụng. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N #include void main() { int y; printf(“\nPlease enter a year:”); scanf(“%d”, &y); if (y% 4 == 0 && y % 100 != 0 || y % 400 == 0) printf(“\n%d is a leap year!”, y); else printf(“\n%d is not a leap year!”, y); getch(); } 26  Đoạn mã này chỉ hiển thị thông báo “is a leap year” ra màn hình nếu là năm nhuận.  Trong trường hợp ngược lại, nếu năm nhập vào không phải là năm nhuận, sẽ không có bất kỳ thông báo nào được in ra.  Điều này có thể gây ra sự hiểu lầm và đôi chút khó chịu cho người sử dụng.  Để khắc phục điều này, thay vì sử dụng cấu trúc if đơn giản, ta sử dụng cấu trúc if-else CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N 27  Ví dụ: đổi một ký tự hoa thành ký tự thường.  Nếu ký tự không phải là một ký tự hoa, nó sẽ được in ra mà không cần thay đổi. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N /* Convert upper case to lower case*/ #include void main() { char c; printf(“Please enter a character: ”); scanf(“%c”, &c); if (c >= „A‟ && c <= „Z‟) printf(“haracter Converted: %c”, c + „a‟ – „A‟); else printf(“Character Entered: %c”, c); } 28  Ví dụ: đổi một ký tự hoa thành ký tự thường.  Nếu ký tự không phải là một ký tự hoa, nó sẽ được in ra mà không cần thay đổi.  Chương trình sử dụng cấu trúc if-else để kiểm tra xem một ký tự có phải là ký tự hoa không, rồi thực hiện các thao tác tương ứng. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N /* Convert upper case to lower case*/ #include void main() { char c; printf(“Please enter a character: ”); scanf(“%c”, &c); if (c >= „A‟ && c <= „Z‟) printf(“haracter Converted: %c”, c + „a‟ – „A‟); else printf(“Character Entered: %c”, c); } 29  Biểu thức c >= ‘A’ && c <= ‘Z’ kiểm tra ký tự nhập vào có là ký tự hoa không.  Nếu biểu thức trả về true, ký tự đó sẽ đổi thành ký tự thường bằng biểu thức c + ‘a’ – ‘A’, và được in ra màn hình qua hàm printf().  Nếu giá trị của biểu thức là false, câu lệnh sau else được chạy và chương trình hiển thị tự đó ra màn hình mà không cần thực hiện bất cứ sự thay đổi nào. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Nhiều lựa chọn các câu lệnh if...then...else  Câu lệnh if cho phép ta lựa chọn thực hiện một hành động nào đó hay không.  Câu lệnh if – else cho phép ta lựa chọn thực hiện giữa hai hành động.  C cho phép ta có thể đưa ra nhiều lựa chọn hơn. Chúng ta mở rộng cấu trúc if – else bằng cách thêm vào cấu trúc else – if để thực hiện điều đó. Nghĩa là mệnh đề else trong một câu lệnh if – else lại chứa một câu lệnh if – else khác. Do đó nhiều điều kiện hơn được kiểm tra và tạo ra nhiều lựa chọn hơn. 30 CNTT Nhập môn tin học CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Nhiều lựa chọn các câu lệnh if...then...else  Câu lệnh if cho phép ta lựa chọn thực hiện một hành động nào đó hay không.  Câu lệnh if – else cho phép ta lựa chọn thực hiện giữa hai hành động.  C cho phép ta có thể đưa ra nhiều lựa chọn hơn. Chúng ta mở rộng cấu trúc if – else bằng cách thêm vào cấu trúc else – if để thực hiện điều đó. Nghĩa là mệnh đề else trong một câu lệnh if – else lại chứa một câu lệnh if – else khác. Do đó nhiều điều kiện hơn được kiểm tra và tạo ra nhiều lựa chọn hơn. 31 CNTT Nhập môn tin học CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Nhiều lựa chọn các câu lệnh if...then...else  Cú pháp tổng quát trong trường hợp này như sau: if (biểu thức) câu_lệnh; else if (biểu thức) câu_lệnh; else câu_lệnh; 32 CNTT Nhập môn tin học CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N Nhiều lựa chọn các câu lệnh if...then...else  Cú pháp tổng quát if (biểu thức) câu_lệnh; else if (biểu thức) câu_lệnh; else câu_lệnh;  Cách canh lề (lùi vào trong) như trên giúp ta nhìn chương trình một cách dễ dàng khi có một hoặc hai lệnh if.  Tuy nhiên khi có nhiều lệnh if hơn cách viết đó dễ gây ra nhầm lẫn vì nhiều câu lệnh sẽ phải lùi vào quá sâu. Vì vậy, lệnh if-else-if thường được canh lề theo dạng hình bên phải: 33 if (biểu thức) câu_lệnh; else if (biểu thức) câu_lệnh; else if (biểu thức) câu_lệnh; . . . else câu_lệnh; CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N #include #include int main() { char choice; printf("Enter a choice: " ) ; scanf("%c", &choice); printf("\nChoice :%c", choice); if (choice == '+') printf("\nChoice Addition"); else if (choice == '-') printf("\nChoice Subtraction"); else if (choice == '*') printf("\nChoice Multiplication"); else if (choice == '/') printf("\nChoice Division"); else printf("\nInvalid Choice!"); getch(); return 0; } 34  Ví dụ sau đây cho phép người dùng nhập một tự tương ứng với một phép toán bất kỳ từ bàn phím.  Xuất ra các thông báo tương ứng với mỗi phép toán được nhập. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N #include #include int main() { char choice; printf("Enter a choice: " ) ; scanf("%c", &choice); printf("\nChoice :%c", choice); if (choice == '+') printf("\nChoice Addition"); else if (choice == '-') printf("\nChoice Subtraction"); else if (choice == '*') printf("\nChoice Multiplication"); else if (choice == '/') printf("\nChoice Division"); else printf("\nInvalid Choice!"); getch(); return 0; } 35 Trong chương trình trên,  Nếu tự nhập là dấu (+), chương trình sẽ in ra dòng thông báo “Choice Addition ”.  Nếu là dấu (-), chương trình sẽ in ra dòng thông báo “Choice Subtraction”.  Nếu là dấu (*) chương trình sẽ in ra dòng thông báo “Choice Multiplication”.  Nếu là dấu (/) chương trình sẽ in ra dòng thông báo “Choice Division”.  Nếu hiệu nhập vào không phải phép toán thì in ra thông báo “Invalid Choice!”; CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N #include #include int main() { char choice; printf("Enter a choice: " ) ; scanf("%c", &choice); printf("\nChoice :%c", choice); if (choice == '+'){ printf("\nChoice Addition"); result = a + b; } else if (choice == '-'){ printf("\nChoice Subtraction"); result = a - b; } else if (choice == '*'){ printf("\nChoice Multiplication"); result = a * b; } else if (choice == '/'){ printf("\nChoice Division"); result = a / b; } getch(); return 0; } 36  Muốn thực hiện nhiều hơn một lệnh sau mỗi câu lệnh if hay else, ta phải đặt các câu lệnh đó vào trong cặp dấu ngoặc nhọn {}.  Các câu lệnh đó tạo thành một nhóm gọi là lệnh phức hay một khối lệnh. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N if (biểu thức–1) { if (biểu thức_2) câu_lệnh1; if (biểu thức_3) câu_lệnh_2; else câu_lệnh_3;/* với if (biểu thức_3) */ } else câu_lệnh_4; /* với if (biểu thức_1) */ 37 Các cấu trúc if lồng nhau  Một cấu trúc if lồng nhau là một lệnh if được đặt bên trong một lệnh if hoặc else khác.  Trong C, lệnh else luôn gắn với lệnh if không có else gần nó nhất, và nằm trong cùng một khối lệnh với nó. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N if (biểu thức–1) { if (biểu thức_2) câu_lệnh1; if (biểu thức_3) câu_lệnh_2; else câu_lệnh_3;/* với if (biểu thức_3) */ } else câu_lệnh_4; /* với if (biểu thức_1) */ 38 Các cấu trúc if lồng nhau  Trong cấu trúc if ở trên, nếu giá trị của biểu_thức_1 là true thì lệnh if thứ hai sẽ được kiểm tra.  Nếu biểu_thức_2 là true thì lệnh câu_lệnh_1 sẽ được thực hiện.  Nếu biểu thức_3 là true, câu_lệnh_2 sẽ được thực hiện,  nếu không câu_lệnh_3 được thực hiện.  Nếu biểu thức_1 là false thì câu_lệnh_4 được thực hiện. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N if (điều kiện-1) if (điều kiện_2) câu_lệnh_1; else câu_lệnh_2; câu_lệnh_kế_tiếp; 39 Các cấu trúc if lồng nhau  Vì lệnh else trong cấu trúc else-if là không bắt buộc, nên có thể có một cấu trúc khác như dạng bên: CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N if (điều kiện-1) if (điều kiện_2) câu_lệnh_1; else câu_lệnh_2; câu_lệnh_kế_tiếp; 40 Các cấu trúc if lồng nhau  Vì lệnh else trong cấu trúc else-if là không bắt buộc, nên có thể có một cấu trúc khác như dạng bên  Trong đoạn mã trên, nếu điều kiện-1 là true, chương trình sẽ chuyển đến thực hiện lệnh if thứ hai và điều kiện-2 được kiểm tra. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N if (điều kiện-1) if (điều kiện_2) câu_lệnh_1; else câu_lệnh_2; câu_lệnh_kế_tiếp; 41 Các cấu trúc if lồng nhau  Nếu điều kiện đó là true, câu_lệnh_1 được thực hiện, nếu không câu_lệnh_2 được thực hiện, sau đó chương trình thực hiện những lệnh trong câu lệnh kế tiếp.  Nếu điều kiện_1 là false, chương trình sẽ chuyển đến thực hiện những lệnh trong câu lệnh kế tiếp. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N if (điều kiện-1) if (điều kiện_2) câu_lệnh_1; else câu_lệnh_2; câu_lệnh_kế_tiếp; 42 Ví dụ Các cấu trúc if lồng nhau Viết chương trình phân loại sinh viên theo điểm tổng kết, cụ thể như sau:  Loại xuất sắc (Excellent): Điểm tổng kết 8.5  Loại giỏi (Good): 8.0 Điểm tổng kết < 8.5  Loại khá (Fair): 6.5 Điểm tổng kết < 8  Loại trung bình (Normal): 5 Điểm tổng kết < 6.5  Loại yếu (Bad): Điểm tổng kết < 5. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N 43 Ví dụ Các cấu trúc if lồng nhau Viết chương trình phân loại sinh viên theo điểm tổng kết, cụ thể như sau:  Loại xuất sắc (Excellent): Điểm tổng kết 8.5  Loại giỏi (Good): 8.0 Điểm tổng kết < 8.5  Loại khá (Fair): 6.5 Điểm tổng kết < 8  Loại trung bình (Normal): 5 Điểm tổng kết < 6.5  Loại yếu (Bad): Điểm tổng kết < 5. CÁC CẤU TRÚC ĐIỀU KHIỂN 1. U C A N 44 Ví dụ Các cấu trúc if lồng nhau Viết chương trình phân loại sinh viên theo điểm tổng kết, cụ thể như sau:  Loại xuất sắc (Excellent): Điểm tổng kết 8.5  Loại g