Trong bài này sẽ giới thiệu đến người học một số cấu trúc điều khiển như: Lệnh rẽ nhánh if-else, lệnh rẽ nhiều nhánh switch, vòng lặp while-do white-for, các từ khóa break và continue. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
NMLT C U TRÚC I U KHI N Tr n Ph c Tu n tranphuoctuan.khoatoan.dhsp@gmail.com http://baigiang.tranphuoctuan.com C u trúc i u n L nh r nhá nhánh: if – else L nh r nhi u nhá nhánh: switch Vòng l p: while, while, for Các t khóa: break continue NH P MƠN L P TRÌNH 12/23/2009 L nh r nhánh if Cú pháp: i u ki n if ( i u ki n) S; i u ki n: bi u th c c t gi a c p ngo S ph i câu l nh, n l nh ph i c t gi kh i l nh nh cho k t qu S ; ph i c n () u nhi u h n l nh, a c p ngo c nh n {} – scanf("%i scanf("%i %i", %i", max max == a; a; if(b > if(b > max) max) max max == b; b; printf(“So printf(“So lon lon NH P MÔN L P TRÌNH 0 S &a, &a, &b); &b); la: la: %i\n“, %i\n“, max); max); 12/23/2009 uý N u t d u ch m ph y (;) sau bi u th c i u ki n l nh S c a if xem nh “KHÔNG LÀM GÌ” printf(“Nhap printf(“Nhap mot mot so so nguyen: nguyen: "); "); scanf("%i", scanf("%i", &j); &j); if(j if(j >> 0); 0); printf(“%i printf(“%i la la so so duong“, duong“, j); j); Nhap Nhap mot mot so so nguyen: nguyen: -6 -6 -6 -6 là so so duong duong NH P MƠN L P TRÌNH 12/23/2009 L nh r nhánh if-else Cú pháp: if ( i u ki n) S; else Se; Ph n l nh else có th thêm vào câu l nh if ch th l nh th c hi n i u ki n i u ki n 0 Se S b ng (FALSE) scanf("%i scanf("%i %i", %i", if(a if(a >> b) b) max max == a; a; else else max max == b; b; printf(“So printf(“So lon lon NH P MÔN L P TRÌNH &a, &a, &b); &b); la: la: %i\n“, %i\n“, max); max); 12/23/2009 Nhi u l nh if l ng else k t n i v i l nh if g n nh t int int ii == 100; 100; if(i if(i >> 0) 0) if(i if(i >> 1000) 1000) printf("i printf("i else else printf("i printf("i ii chap chap nhan nhan duoc duoc qua qua lon\n"); lon\n"); chap chap nhan nhan duoc\n"); duoc\n"); int int ii == -20; -20; if(i > 0) ii la if(i > 0) {{ la so so am am if(i > 1000) if(i > 1000) printf("i printf("i qua qua lon\n"); lon\n"); }} else else printf("i printf("i la la so so am\n"); am\n"); NH P MƠN L P TRÌNH 12/23/2009 C u trúc nhi u ch n l a – switch Cú pháp: switch (bi u th c) { case gt1: S1; [break;] case gt2: S2; [break;] ;] case gtn: Sn; [break [break;] default: Se; } Bi u th c: cho k t qu S NGUYÊN; ph i ngo c n () Si : dãy l nh NH P MÔN L P TRÌNH c t gi a c p 12/23/2009 Ví d l nh switch switch(c) switch(c) {{ case case 'a': 'a': case case 'A': 'A': printf(“Dien printf(“Dien tich tich == %.2f\n", %.2f\n", rr ** rr ** pi); pi); break; break; case case 'c': 'c': case case 'C': 'C': printf(“Chu printf(“Chu vi vi == %.2f\n", %.2f\n", 22 ** rr ** pi); pi); break; break; case case 'q': 'q': printf(“Thoat\n"); printf(“Thoat\n"); break; break; default: default: printf(“Chon printf(“Chon khong khong hop hop le\n"); le\n"); }} NH P MƠN L P TRÌNH 12/23/2009 M ts u ý – switch N u giá tr kh p, l nh ph n default s c th c thi; n u khơng có default c ng khơng x y l i L nh break r t quan tr ng ii ii ii float float f; f; ii == 3; 3; switch(f) switch(f) {{ case case 2: 2: switch(i) switch(i) {{ case case 22 ** j: j: == 33 == 22 == 11 switch(i) switch(i) {{ case printf("i case 3: 3: printf("i == 3\n"); 3\n"); case 2: printf("i = 2\n"); case 2: printf("i = 2\n"); case 1: printf("i case 1: printf("i == 1\n"); 1\n"); }} NH P MÔN L P TRÌNH 12/23/2009 C u trúc nhi u ch n l a – switch gt1 S1; break; bi u th c default gt2 S2; break; … NH P MƠN L P TRÌNH 12/23/2009 Se; 10 Ví d khác – switch //Doan //Doan chuong chuong switch(so) switch(so) {{ case case 0: 0: case case 1: 1: case case 2: 2: case case 3: 3: case case 4: 4: case case 5: 5: case case 6: 6: case case 7: 7: case case 8: 8: case case 9: 9: }} trinh trinh doc doc so so 9 printf(“khong\n"); printf(“khong\n"); printf(“mot\n"); printf(“mot\n"); printf(“hai\n"); printf(“hai\n"); printf(“ba"); printf(“ba"); printf(“bon"); printf(“bon"); printf(“nam"); printf(“nam"); printf(“sau"); printf(“sau"); printf(“bay"); printf(“bay"); printf(“tam"); printf(“tam"); printf(“chin"); printf(“chin"); NH P MƠN L P TRÌNH 11 12/23/2009 L nh l p while Cú pháp: while ( i u ki n) S; i u ki n: bi u th c cho k t qu S ph i c t gi a c p ngo c n () S ph i câu l nh, n u nhi u h n l nh, l nh ph i c t gi a c ngo c nh n {} – kh i l nh i u ki n ; while th c hi n l nh S nh t l n NH P MƠN L P TRÌNH 12/23/2009 S p int while(j jj == 5; >> 0) int 5; while(j 0) {{ printf("j == %i\n", printf("j %i\n", j); j); while(j > 0) while(j > 0) j ; j ; printf("j == %i\n", printf("j %i\n", j ); j ); }} jj jj jj jj jj == 55 == 44 == 33 == 22 == 11 12 u ý d u ch m ph y ; D u ‘;’ t sau bi u th c i u ki n S r ng int int jj == 5; 5; while(j while(j >> 0); 0); printf("j printf("j == %i\n", %i\n", j ); j ); ôi ng ng ngh a v i l nh Ch ong trình b khơng p c i l p trình c ý s d ng l nh r ng int int c, c, j; j; while(scanf("%i", while(scanf("%i", &j) &j) != != 1) 1) while((c while((c == getch()) getch()) != != 27) 27) ;; NH P MƠN L P TRÌNH t d u ‘;’ t thúc while khơng có S 13 12/23/2009 L nh l p while Cú pháp: { S S; }while ( i u ki n); i u ki n: bi u th c cho k t qu S ; ph i c t gi a c p ngo c n () NH P MƠN L P TRÌNH 12/23/2009 i u ki n 0 14 Ví d while int int jj == 5; 5; printf("start\n"); printf("start\n"); do printf("j printf("j == %i\n", %i\n", j ); j ); while(j while(j >> 0); 0); printf("stop\n"); printf("stop\n"); NH P MÔN L P TRÌNH start start jj == 55 jj == 44 jj == 33 jj == 22 jj == 11 stop stop 15 12/23/2009 Ví d while int int jj == -10; -10; printf("start\n"); printf("start\n"); do {{ printf("j printf("j == %i\n", %i\n", j); j); j ; j ; }} while(j while(j >> 0); 0); printf("stop\n"); printf("stop\n"); start start jj == -10 -10 stop stop while th c hi n l nh S nh t l n NH P MƠN L P TRÌNH 12/23/2009 16 L nh l p for L nh l p for d n h t cá thành ph n c a vòng l p vào m t câu l nh Cú phá pháp: for (kh i ng; i u ki n l p; i u n) S; kh i ng i u ki n S i u n NH P MƠN L P TRÌNH 12/23/2009 17 L nh l p for – Ví d jj == 55 int jj == 44 int j; j; jj == 33 for(j = 5; j > 0; j ) { for(j for(j = 5; j== >5; >> 0; jj == 22 for(j 5;0;jj j ) 0; {j ) j ) printf("j = %i ", j); printf("j = %i ", j); printf("j == %i\n", j); jj == 11 printf("j %i\n", j); printf("%s\n", ((j%2)==0)?“chan":“le"); printf("%s\n", ((j%2)==0)?“chan":“le"); }} jj == 55 le le jj == 44 chan chan jj == 33 le le jj == 22 chan chan jj == 11 le le NH P MƠN L P TRÌNH 12/23/2009 18 c l p for C không gi i h n l nc ab c l p for #include #include int int main(void) main(void) {{ double double angle; angle; for(angle for(angle == 0.0; 0.0; angle angle