CHƯƠNG III CẤU TRÚC ĐIỀU KHIỂN BÀI 1 : Cấu trúc điều kiện BÀI 2 : Cấu trúc lặp BÀI 3 : Các câu lệnh rẽ nhánh
BÀI 1 : Cấu trúc điều kiện Câu lệnh if : if (condition) statement; condiion : biểu thức điều kiện statement : lệnh thực hiện khi condition đúng Ví dụ : if (a<b) max=b; true false
BÀI 1 : Cấu trúc điều kiện condition Câu lệnh if … else … : if (condition) statement1; else statement2; condiion : biểu thức điều kiện statement 1: lệnh thực hiện khi condition đúng statement 2: lệnh thực hiện khi condition sai Ví dụ : if (a<b) max=b; else max=a; condition statement1 statement2 true false
VÝ dô : printf("Enter two integers: "); int Value1; int Value2; scanf(“%d %d”,&Value1,&Value2); int Max; if (Value1 < Value2) { Max = Value2; } else { Max = Value1; printf(“\n Maximum of inputs is: %d\n“,Max);
BÀI 1 : Cấu trúc điều kiện Câu lệnh switch : switch (expression){ case N1 : statement1; case N2 : statement2; ... [default : default_statement;] } expression : là biểu thức có giá trị nguyên Ví dụ : switch (ch){ case 1 : case 2 : printf("1 ou 2"); break; case 3 : printf("3"); break; default : printf("greater than 3");
BÀI 2 : Cấu trúc lặp Câu lệnh for : Cú pháp : for ( init_expr; cond_expr; loop_expr ) statement; Hay : for ( init_expr; cond_expr; loop_expr ) { Khối lệnh; } init_expr : biểu thức thiết lập giá trị khởi động cond_expr : biểu thức điều kiện kết thúc vòng lặp loop_expr : biểu thức dùng để định giá sau mỗi vòng lặp
Lưu đồ vòng lặp for cond_expr Điểm vào vòng lặp Các lệnh khởi tạo Thực hiện lệnh tác động đến Loop_expr Kết thúc Vòng lặp Thực hiện lệnh hay khối lệnh sau for cond_expr Quay lai kiểm tra cond_expr Điều kiện đúng Điều kiện sai
BÀI 2 : Cấu trúc lặp Ví dụ : Tính N! long Gt,i,N; ... Gt = 1; for (i=1; i<=N; i++) Gt *= i;
BÀI 2 : Cấu trúc lặp Câu lệnh while : Cú pháp : while (<condition>) statement; Hay : while (<condition>) { compound statement; }
Cấu trúc vòng lặp while condition statement Điểm vào vòng lặp Sai Kêt thúc Vòng lặp Đúng Quay lai kiểm tra condition statement
BÀI 2 : Cấu trúc lặp Ví dụ : int day[20]; int chiso = 0; Đọc một dãy 20 số nguyên từ bàn phím int day[20]; int chiso = 0; while (chiso<20) { printf(“\nSo thu %d :”,chiso); scanf(“%d”,&day[chiso]); chiso++; }
BÀI 2 : CÊu tróc lÆp Câu lệnh do … while : hay : Cú pháp : do statement; while (<condition>); hay : do { compound statement; }while (<condition>);
Cấu trúc vòng lặp do … while §iÓm vµo vßng lÆp Thùc hiÖn lÖnh cña do … while condition sai KÕt thóc vßng lÆp Quay lai lÖnh ®Çu tiªn ngay sau tõ khãa do ®óng
BÀI 2 : Cấu trúc lặp Ví dụ : Tính tích cô hướng của hai vector X, Y. int X[MAXL], Y[MAXL], chiso=0; tichvohuong = 0; do { tichvohuong += X[chiso]*Y[chiso]; } while (++chiso < MAXL);
BÀI 3 : Các câu lệnh rẽ nhánh Lệnh break : Cú pháp : break; Công dụng : Kết thúc việc thực hiện các phát biểu sau vị trí break tới hết cấu trúc hiện thời như switch, for, while, do … while.
BÀI 3 : Các câu lệnh rẽ nhánh Ví dụ : for(i=0 ; i<Length ; i++) { for(j=0 ; j<Width ; j++) if(lines[i][j]==‘\0’) length[i]=j; break; } Điều khiển chuyển từ vị trí hiện thời là phát biểu break về đầu vòng lặp for
BÀI 3 : Các câu lệnh rẽ nhánh Lệnh continue : Cú pháp : continue; Công dụng : Bỏ qua việc thực hiện các phát biểu sau lệnh continue trong các cấu trúc lặp for, while hoặc do … while và chuyển điều khiển về đầu cấu trúc lặp chứa continue
BÀI 3 : Các câu lệnh rẽ nhánh Ví dụ : while ((i--)>0) { x=f(i); if(x==1) continue; y+=x*x; } Chuyển điều khiển từ vị trí hiện thời là phát biểu continue về đầu vòng lặp while