Mời các bạn tham khảo bài giảng Nhập môn lập trình: Phần 2 - Cấu trúc điều khiển sau đây để hiểu rõ hơn về lệnh rẽ nhánh if – else; lệnh rẽ nhiều nhánh switch; vòng lặp while, do while, for; các từ khóa break và continue. Bài giảng hữu ích với các bạn chuyên ngành Công nghệ thông tin và những bạn quan tâm tới lĩnh vực này.
Trang 1Cấu trúc điều
khiển
Trang 2Cấu trúc điều khiển
Lệnh rẽ nhánh: if – else
Lệnh rẽ nhiều nhánh: switch
Vòng lặp: while , do while , for
Các từ khóa: break và continue
Trang 3Lệnh rẽ nhánh if
Cú pháp:
if (điều kiện ( điều kiện )
S ;
Điều kiện : biểu thức cho kết quả SỐ : biểu thức cho kết quả SỐ ; phải
được đặt giữa cặp ngoặc đơn ()
S phải là 1 câu lệnh, nếu nhiều hơn 1 lệnh, các
lệnh phải được đặt giữa cặp ngoặc nhọn {} –
printf(“So lon la: %i\n“, max);
scanf("%i %i", &a, &b);
0
0
Trang 4Lưu ý
Nếu đặt dấu chấm phẩy (;) ở ngay sau biểu thức điều kiện thì lệnh S của if xem như “
thì lệnh S của if xem như “KHÔNG LÀM GÌ KHÔNG LÀM GÌ ”
printf(“Nhap mot so nguyen: ");
Trang 5 Phần lệnh else có thể thêm vào trong câu lệnh
if để chỉ thị các lệnh thực hiện khi điều kiện bằng
printf(“So lon la: %i\n“, max);
scanf("%i %i", &a, &b);
0
0
S e
Trang 6printf("i chap nhan duoc\n");
i chap nhan duoc
printf("i la so am\n");
i la so am
Trang 7Cấu trúc nhiều chọn lựa – switch
Cú pháp:
switch (biểu thức ( biểu thức ) {
case gt1: S : S1; [break ; [ break ;]
case gt2: S : S2; [break ; [ break ;]
Trang 8Ví dụ lệnh switch
switch(c) { case 'a': case 'A':
printf(“Dien tich = %.2f\n", r * r * pi); break;
printf(“Dien tich = %.2f\n", r * r * pi);
break ; case 'c': case 'C':
printf(“Chu vi = %.2f\n", 2 * r * pi);
break ; case 'q':
printf(“Thoat\n");
break ; default :
printf(“Chon khong hop le\n");
}
Trang 9Một số lưu ý – switch
Nếu không có giá trị nào khớp, các lệnh trong phần
default sẽ được thực thi; và nếu không có default cũng không xảy ra lỗi.
Lệnh break Lệnh break rất quan trọng.
float f;
switch(f) { case 2:
float f;
switch(f) { case 2:
switch(i) { case 2 * j:
switch(i) { case 2 * j:
i = 3;
switch(i) { case 3: printf("i = 3\n"); case 2: printf("i = 2\n"); case 1: printf("i = 1\n"); }
i = 3;
switch(i) { case 3: printf("i = 3\n"); case 2: printf("i = 2\n"); case 1: printf("i = 1\n"); }
Trang 10biểu thức
S1; break;
gt1
…
S2; break;
Trang 11Ví dụ khác – switch
//Doan chuong trinh doc so 0 9 switch(so) {
case 0: printf(“khong\n"); case 1: printf(“mot\n"); case 2: printf(“hai\n"); case 3: printf(“ba");
Trang 12ngoặc nhọn {} – khối lệnh khối lệnh .
0
0
Trang 13Lưu ý dấu chấm phẩy
Lưu ý dấu chấm phẩy ; ;
Dấu ‘;’ đặt ngay sau biểu thức điều kiện đồng nghĩa với lệnh
Đôi khi người lập trình cố ý sử dụng lệnh rỗng Đôi khi người lập trình cố ý sử dụng lệnh rỗng
Trang 14Lệnh lặp do while
Cú pháp:
do
S ;
while (điều kiện ( điều kiện );
Điều kiện : biểu thức cho kết quả SỐ : biểu thức cho kết quả SỐ ; phải
được đặt giữa cặp ngoặc đơn ()
S phải là 1 câu lệnh, nếu nhiều hơn 1 lệnh,
các lệnh phải được đặt giữa cặp ngoặc nhọn {} –
nhọn {} – khối lệnh khối lệnh
điề
u kiệ n
S
0
0
Trang 16j = -10 stop
Trang 18for(j = 5; j > 0; j ) {
printf("j = %i ", j);
printf("%s\n", ((j%2)==0)?“chan":“le"); }
Trang 19Bước lặp trong for
C không giới hạn độ lớn của bước lặp trong for.
Trang 20Nói thêm về for
Phần lệnh khởi động và lệnh điều khiển có thể gồm nhiều lệnh đơn giản, các lệnh này cách nhau bởi dấu phẩy (,)
Dùng while sẽ hợp
lý hơn Vòng lặp không kết thúc
Trang 21khong hop le, nhap lai nhap mot so nguyen: 16
j = 16
khong hop le, nhap lai nhap mot so nguyen: 16
j = 16
Nếu scanf trả về 1, chương trình thoát khỏi vòng lặp for
Trang 22thì bỏ qua lệnh in j