Lập trình căn bản - Phần 2 - Chương 4: Các lệnh có cấu trúc

ppt 31 trang vanle 2010
Bạn đang xem 20 trang mẫu của tài liệu "Lập trình căn bản - Phần 2 - Chương 4: Các lệnh có cấu trúc", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptlap_trinh_can_ban_phan_2_chuong_4_cac_lenh_co_cau_truc.ppt

Nội dung text: Lập trình căn bản - Phần 2 - Chương 4: Các lệnh có cấu trúc

  1. LẬP TRÌNH CĂN BẢN Phần 2 - Chương 4 CÁC LỆNH CÓ CẤU TRÚC 1
  2. Nội dung chương này • Khối lệnh trong C • Cấu trúc rẽ nhánh • Cấu trúc lựa chọn • Cấu trúc vòng lặp • Các câu lệnh “đặc biệt” 2
  3. Khối lệnh trong C (1) • Là 1 dãy các khai báo cùng với các câu lệnh nằm trong cặp dấu ngoặc móc { và }. 3
  4. Khối lệnh trong C (2) • 1 khối lệnh có thể chứa nhiều khối lệnh khác gọi là khối lệnh lồng nhau (không hạn chế). 4
  5. Phạm vi các biến • Có thể khai báo các biến cùng tên trong các khối. • Nếu một biến được khai báo bên ngoài khối lệnh và không trùng tên với biến bên trong khối lệnh thì nó cũng dùng được bên trong khối. • Một khối lệnh con có thể sử dụng các biến bên ngoài, nhưng điều ngược lại không đúng. 5
  6. Cấu trúc rẽ nhánh (if) • Statement được thực hiện nếu boolean_expression có giá trị đúng (true), !=0. • Khối else là tùy chọn boolean_expression !=0 => Statement1 được thực hiện boolean_expression ==0 => Statement2 được thực hiện 6
  7. Ví dụ - Lệnh if #include #include int main (){ float a; printf("Nhap a = "); scanf("%f",&a); if (a !=0 ) printf("Nghich dao cua %f la %f",a,1/a); getch(); return 0; } 7
  8. Ví dụ - Lệnh if-else #include #include int main (){ float a; printf("Nhap a = "); scanf("%f",&a); if (a !=0 ) printf("Nghich dao cua %f la %f",a,1/a); else printf(“Khong the tim duoc nghich dao cua a”); getch(); return 0; } 8
  9. Câu lệnh và khối lệnh • C cho phép nhóm các câu lệnh liên tiếp vào 1 khối. • 1 khối lệnh có thể được dùng như 1 lệnh đơn. • Ví dụ: 9
  10. Nhầm lẫn khi dùng if • Chương trình trên sai ở đâu? 10
  11. Chú ý khi dùng if-else • Câu lệnh if-else lồng nhau • else sẽ kết hợp với if gần nhất chứa có else • Trong trường if bên trong không có else thì phải viết nó trong cặp dấu {} để tránh sự kết hợp else if sai. • Ví dụ 11
  12. Cấu trúc lựa chọn (switch-case) (1) • C cung cấp 1 cấu trúc đẹp - dùng 1 dãy các câu lệnh if. 12
  13. Cấu trúc lựa chọn (switch-case) (2) • switch-case có thể đưa đến mã máy (machine code) hiệu quả hơn (vì jump tables có thể được dùng) 13
  14. Cấu trúc lựa chọn (switch-case) (3) • Cú pháp: – Tính giá trị của biểu thức expr trước. – Nếu giá trị expr bằng value1 thì thực hiện statement_sequence1 rồi thoát. – Nếu giá trị expr khác value1 thì so sánh nó với value2, nếu bằng value2 thì thực hiện statement_sequence2 rồi thoát. – Cứ như thế, so sánh tới giá trị n. – Nếu tất cả các phép so sánh trên đều sai thì thực hiện default_statements của trường hợp default. 14
  15. Cấu trúc lựa chọn (switch-case) (4) • Các chú ý: – Kiểu của expr và các valuei phải là kiểu số nguyên (int, chat, long, ). – Nếu break/return vắng mặt, câu lệnh trong các case bên dưới có thể được thực hiện cho đến khi gặp break/return hoặc kết thúc lệnh switch. 15
  16. Ví dụ - switch-case (1) 16
  17. Ví dụ - switch-case (2) In ra số ngày của 1 tháng 17
  18. Cấu trúc lặp • Cho phép lặp lại thực hiện 1 công việc nhiều lần. • Có 2 loại: – Lặp với số lần xác định • for – Lặp với số lần không xác định • while • do-while 18
  19. Vòng lặp for (1) for (Biểu thức 1; biểu thức 2; biểu thức 3) ; • Thứ tự thực hiện: B1: Tính giá trị biểu thức 1 B2: Tính giá trị biểu thức 2 • Nếu giá trị biểu thức 2 là sai (==0) => thoát khỏi for • Nếu giá trị biểu thức 2 là đúng (!=0) => thực hiện B3: Tính giá trị biểu thức 3 19 rồi quay lại B2
  20. Vòng lặp for (2) 20
  21. Vòng lặp for (2) • Chương trình in dãy số nguyên từ 1 10 output 21
  22. Vòng lặp for (3) • Nhập số nguyên n. Tính tổng các số nguyên từ 1 n. output 22
  23. Vòng lặp while (1) while (Biểu thức điều kiện) ; • : có thể là 1 câu lệnh hay 1 khối lệnh. • Các bước thực hiện: - Kiểm tra Biểu thức điều kiện trước. - Nếu điều kiện sai (==0) thì thoát khỏi lệnh while. - Nếu điều kiện đúng (!=0) thì thực hiện công việc rồi quay lại kiểm tra điều kiện tiếp. 23
  24. Vòng lặp while (2) • Chương trình in dãy số nguyên từ 1 10 output 24
  25. Vòng lặp while (3) • Nhập số nguyên n. Tính tổng các số nguyên từ 1 n. output 25
  26. Vòng lặp do-while (1) do while ( ); • : có thể là 1 câu lệnh hay 1 khối lệnh. • Các bước thực hiện: – Công việc được thực hiện trước, sau đó mới kiểm tra điều kiện. – Nếu điều kiện sai thì thoát khỏi lệnh do- while. – Nếu điều kiện còn đúng thì thực hiện công việc rồi quay lại kiểm tra điều kiện tiếp. 26
  27. Vòng lặp do-while (2) • Chương trình in dãy số nguyên từ 1 10 output 27
  28. Vòng lặp do-while (3) • Nhập số nguyên n. Tính tổng các số nguyên từ 1 n. output 28
  29. So sánh các vòng lặp • Vòng lặp for/while: – Kiểm tra điều kiện trước thực hiện công việc sau. – Công việc có thể không được thực hiện lần nào. – Vòng lặp kết thúc khi nào điều kiện sai. • Vòng lặp do-while – Thực hiện công việc trước kiểm tra điều kiện sau. – Công việc được thực hiện ít nhất 1 lần. – Vòng lặp kết thúc khi nào điều kiện sai. 29
  30. Câu lệnh đặc biệt • Lệnh break – Dùng để thoát khỏi vòng lặp hoặc switch-case. – Tiếp tục thực hiện lệnh liền sau đó. • Lệnh continue – Trong vòng lặp, khi gặp lệnh continue, chương trình sẽ bỏ qua các câu lệnh sau continue • for: quay lên tính trị cho biểu thức 3, rồi kiểm tra điều kiện coi có lặp tiếp không. • while/do-while: kiểm tra điều kiện coi có lặp tiếp không. 30
  31. Hết chương 31