Chương 8: Các Lệnh Điều Khiển và Vòng Lặp trong Lập Trình

Tài liệu nghiên cứu Htmt va nnc chapter 8, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về ., phục vụ nghiên cứu và ứng dụng thực tiễn

Trường đại học

Trường Đại Học

Chuyên ngành

Lập Trình

Người đăng

Ẩn danh

Thể loại

Tài Liệu Hướng Dẫn

2023

73
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng Dẫn Chi Tiết Về Các Lệnh Điều Khiển Trong Lập Trình

Các lệnh điều khiển là một phần quan trọng trong lập trình, cho phép lập trình viên điều khiển luồng thực thi của chương trình. Chúng bao gồm các lệnh như câu lệnh if, câu lệnh switch, và các vòng lặp như vòng lặp forvòng lặp while. Việc hiểu rõ cách sử dụng các lệnh này sẽ giúp tối ưu hóa mã nguồn và cải thiện hiệu suất chương trình.

1.1. Tổng Quan Về Các Lệnh Điều Khiển

Các lệnh điều khiển trong lập trình được chia thành hai nhóm chính: lệnh điều kiện và lệnh lặp. Lệnh điều kiện cho phép thực hiện các hành động khác nhau dựa trên điều kiện cụ thể, trong khi lệnh lặp cho phép thực hiện một đoạn mã nhiều lần.

1.2. Tại Sao Cần Sử Dụng Các Lệnh Điều Khiển

Việc sử dụng các lệnh điều khiển giúp lập trình viên tạo ra các chương trình linh hoạt và mạnh mẽ. Chúng cho phép xử lý các tình huống khác nhau và thực hiện các tác vụ lặp đi lặp lại mà không cần viết mã nhiều lần.

II. Các Vấn Đề Thường Gặp Khi Sử Dụng Lệnh Điều Khiển

Khi làm việc với các lệnh điều khiển, lập trình viên có thể gặp phải một số vấn đề như lỗi logic, vòng lặp vô hạn, hoặc không đạt được kết quả mong muốn. Những vấn đề này có thể gây khó khăn trong việc gỡ lỗi và bảo trì mã nguồn.

2.1. Lỗi Logic Trong Các Câu Lệnh Điều Kiện

Lỗi logic xảy ra khi điều kiện trong câu lệnh if hoặc switch không được thiết lập đúng cách, dẫn đến việc chương trình không thực hiện hành động như mong đợi.

2.2. Vòng Lặp Vô Hạn

Vòng lặp vô hạn xảy ra khi điều kiện dừng của vòng lặp không bao giờ được thỏa mãn. Điều này có thể làm cho chương trình treo hoặc tiêu tốn tài nguyên hệ thống.

III. Phương Pháp Sử Dụng Câu Lệnh IF Hiệu Quả

Câu lệnh if là một trong những lệnh điều khiển cơ bản nhất trong lập trình. Việc sử dụng câu lệnh if một cách hiệu quả có thể giúp lập trình viên xử lý các tình huống khác nhau một cách linh hoạt.

3.1. Cấu Trúc Câu Lệnh IF

Câu lệnh if có cấu trúc đơn giản, cho phép kiểm tra một điều kiện và thực hiện một hoặc nhiều lệnh nếu điều kiện đó đúng. Cấu trúc cơ bản là: if (điều kiện) { lệnh; }.

3.2. Sử Dụng Câu Lệnh IF ELSE

Câu lệnh if-else cho phép thực hiện một lệnh khác nếu điều kiện không đúng. Điều này giúp lập trình viên xử lý nhiều tình huống khác nhau trong cùng một khối mã.

IV. Khám Phá Câu Lệnh SWITCH CASE Trong Lập Trình

Câu lệnh switch-case là một công cụ mạnh mẽ để xử lý nhiều điều kiện khác nhau mà không cần phải sử dụng nhiều câu lệnh if. Điều này giúp mã nguồn trở nên rõ ràng và dễ bảo trì hơn.

4.1. Cấu Trúc Câu Lệnh SWITCH

Câu lệnh switch có cấu trúc như sau: switch (biểu thức) { case giá_trị1: lệnh1; break; case giá_trị2: lệnh2; break; default: lệnh_default; }.

4.2. Lợi Ích Của Câu Lệnh SWITCH

Sử dụng câu lệnh switch giúp giảm thiểu số lượng mã cần viết và làm cho mã dễ đọc hơn. Nó cũng giúp cải thiện hiệu suất khi xử lý nhiều điều kiện.

V. Vòng Lặp FOR và WHILE Sự Khác Biệt và Ứng Dụng

Vòng lặp for và while là hai loại vòng lặp phổ biến trong lập trình. Mỗi loại có những ưu điểm và ứng dụng riêng, tùy thuộc vào yêu cầu của bài toán.

5.1. Cấu Trúc Vòng Lặp FOR

Vòng lặp for thường được sử dụng khi số lần lặp đã biết trước. Cấu trúc của nó là: for (khởi_tạo; điều_kiện; cập_nhật) { lệnh; }.

5.2. Cấu Trúc Vòng Lặp WHILE

Vòng lặp while được sử dụng khi số lần lặp không xác định trước. Cấu trúc của nó là: while (điều_kiện) { lệnh; }.

VI. Kết Luận và Tương Lai Của Các Lệnh Điều Khiển

Các lệnh điều khiển là nền tảng của lập trình. Việc nắm vững cách sử dụng chúng không chỉ giúp lập trình viên viết mã hiệu quả hơn mà còn giúp họ giải quyết các vấn đề phức tạp trong phát triển phần mềm.

6.1. Tương Lai Của Lập Trình Điều Khiển

Với sự phát triển của công nghệ, các lệnh điều khiển sẽ tiếp tục được cải tiến và mở rộng, giúp lập trình viên có thêm nhiều công cụ để phát triển phần mềm.

6.2. Tầm Quan Trọng Của Việc Học Tập Liên Tục

Lập trình viên cần thường xuyên cập nhật kiến thức và kỹ năng của mình để theo kịp với những thay đổi trong ngôn ngữ lập trình và công nghệ mới.

15/07/2025
Htmt va nnc chapter 8

Trích đoạn nội dung tài liệu

CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.1 Leänh ñôn vaø leänh phöùc 8.9 Leänh GOTO 8.2 Leänh IF 8.10 Leänh ROÃNG 8.3 Leänh SWITCH-CASE Baøi taäp cuoái chöông 8.4 Leänh WHILE 8.5 Leänh DO-WHILE 8.6 Leänh FOR 8.7 Leänh BREAK vaø leänh CONTINUE 8.8 Leänh RETURN CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.1 LEÄNH ÑÔN VAØ LEÄNH PHÖÙC (SIMPLE STATEMENT VAØ COMPOUND STATEMENT) - Leänh ñôn laø moät bieåu thöùc thuoäc loaïi baát kyø theo sau noù laø moät daáu chaám phaåy (;), do ñoù leänh ñôn coøn ñöôïc goïi laø leänh bieåu thöùc. Ví duï: Caùc leänh sau ñaây laø caùc leänh ñôn a = a + 1; b >>= 3; printf (.); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.1 LEÄNH ÑÔN VAØ LEÄNH PHÖÙC (SIMPLE STATEMENT VAØ COMPOUND STATEMENT) -Leänh phöùc bao haøm moät hay nhieàu leänh ñôn ñöôïc bao beân trong caëp daáu ngoaëc nhoïn ({ }) vaø ñöôïc boä dòch C xem nhö laø moät leänh ñôn. Ví duï: Xeùt leänh if sau if (a > 0) { i += 2;   a++;   leänh phöùc, ñöôïc xem laø moät leänh n = a * i;  } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.1 LEÄNH ÑÔN VAØ LEÄNH PHÖÙC (SIMPLE STATEMENT VAØ COMPOUND STATEMENT) Caùc leänh ñieàu khieån naøy coù theå ñöôïc chia ra laøm hai nhoùm: - Nhoùm leänh lieân quan ñeán vieäc reõ nhaùnh chöông trình: if- else, switch-case, goto,. - Nhoùm leänh laëp: while, for, do_while CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF Leänh if cho pheùp laäp trình vieân thöïc hieän moät leänh ñôn hay moät leänh phöùc tuøy theo bieåu thöùc ñieàu kieän, neáu bieåu thöùc coù trò khaùc 0 thì leänh ñöôïc thöïc thi.

CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF Daïng 1: if (bieu_thuc) leänh; - bieåu_thöùc laø moät bieåu thöùc baát kyø, coù theå coù haèng, bieán hoaëc goïi haøm trong ñoù vaø sau cuøng laø bieåu thöùc naøy seõ coù trò 0 hoaëc 1 CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF Daïng 1: if (bieu_thuc) leänh; - leänh laø leänh thöïc thi cuûa if, coù theå laø leänh ñôn, phöùc hoaëc leänh roãng. CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF Daïng 2: if (bieu_thuc) leänh_1; else leänh_2; CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF Ví duï: Xeùt chöông trình sau ñaây #include <stdio.h> main() { int n; clrscr(); printf (Moi nhap mot so: ); scanf (%d, &n); if (n % 2 == 0) printf ("So la so chan \n"); printf ("Moi ban nhan mot phim de ket thuc \n"); getch(); } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF Ví duï: Xeùt chöông trình sau ñaây #include <stdio.h> main() { int n; clrscr(); printf ("Moi nhap mot so: "); scanf ("%d", &n); if (n % 2 == 0) printf ("So la so chan \n"); vaãn coù daáu chaám phaåy else printf ("So la so le \n"); printf ("Moi ban nhan mot phim de ket thuc \n"); getch(); } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF Ví duï: Xeùt chöông trình sau ñaây if (a > 0) if (a > 0) if (b > 0) { c = b + a; if (b > 0) else c = b – a; c = b – a; } else c = b – a; CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF if (bieåu_thöùc_1) Khi thöïc hieän leänh if_else loàng lenh_1; nhau nhö theá naøy caùc bieåu thöùc else if (bieåu_thöùc_2) seõ ñöôïc tính laàn löôït töø treân lenh_2; xuoáng döôùi neáu coù bieåu thöùc else if (bieåu_thöùc_3) naøo khaùc 0, leänh töông öùng vôùi lenh_3; if ñoù seõ ñöôïc thi haønh vaø toaøn. boä phaàn coøn laïi cuûa leänh if-else else ñöôïc boû qua. lenh_n; CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF Ví duï: Chöông trình ví duï sau nhaäp vaøo moät kyù töï, kieåm tra kyù töï ñoù laø thöôøng, hoa, kyù soá hoaëc kyù töï keát thuùc file hay kyù töï khaùc.h> main() { char c; clrscr(); printf ("Nhap mot ky tu: "); c = getchar(); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.2 LEÄNH IF if (c == EOF) printf ("Da den cuoi file \n"); else if (c >= 'a' && c <= 'z') printf ("ky tu thuong\n"); else if (c >= 'A' && c <= 'Z') printf ("ky tu hoa\n"); else if (c >= '0' && c <= '9') printf ("ky tu so\n"); else printf ("ky tu khac\n"); getch(); } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.3 LEÄNH SWITCH-CASE switch (bieåu_thöùc) : { case haèng_n: case haèng_1: leänh_n; leänh_1; break; break; default: case haèng_2: leänh; leänh_2; break; break; } : CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.3 LEÄNH SWITCH-CASE CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.3 LEÄNH SWITCH-CASE Ví duï: Vieát chöông trình nhaäp moät trò, neáu trò ñoù chia heát cho 5 thì coäng theâm 5 vaøo cho soá ñoù, neáu trò ñoù chia cho 5 dö 1 thì coäng theâm 1, töông töï cho 3, neáu laø soá khaùc thì baùo khoâng thoûa.h> main() { int so; clrscr(); printf ("Nhap mot so: "); scanf ("%d", &so); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.3 LEÄNH SWITCH-CASE switch (so % 5) { case 0: so += 5; printf ("Tri la: %d\n", so); break; case 1: so += 1; printf ("Tri la: %d\n", so); break; CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.3 LEÄNH SWITCH-CASE case 3: so += 3; printf ("Tri la: %d\n", so); break; default: printf ("Khong thoa\n"); break; } getch(); } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.3 LEÄNH SWITCH-CASE Leänh break cuoái moãi case seõ chuyeån ñieàu khieån chöông trình ra khoûi leänh switch.

Neáu khoâng coù break, caùc leänh tieáp ngay sau seõ ñöôïc thöïc thi duø caùc leänh naøy coù theå laø cuûa moät case khaùc. CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.3 LEÄNH SWITCH-CASE Ví duï: Xeùt ví duï nhaäp thaùng vaø naêm, kieåm tra soá ngaøy trong thaùng. switch (thang) { case 4: case 6: case 9: case 11: so_ngay = 30; break; CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.3 LEÄNH SWITCH-CASE case 2: if (nam % 4 == 0) so_ngay = 29; else so_ngay = 28; break; default: so_ngay = 31; break; } printf("Thang %d nam %d co %d ngay\n", thang, nam, so_ngay); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.4 LEÄNH WHILE Coù theå noùi while laø leänh laëp cô baûn cuûa ngoân ngöõ laäp trình coù caáu truùc, noù cho pheùp chuùng ta laëp laïi moät leänh hay moät nhoùm leänh trong khi ñieàu kieän coøn ñuùng (true-töùc khaùc 0). Cuù phaùp cuûa leänh while: while (bieu-thuc) lenh CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.4 LEÄNH WHILE CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.4 LEÄNH WHILE Ví duï: Chöông trình sau ñaây seõ in ra maøn hình 10 soá ngaãu nhieân töø 0 ñeán 99.h> main() { int i = 1; clrscr(); randomize(); printf ("So ngau nhien trong khoang 0- 99 la: "); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.4 LEÄNH WHILE while (i <= 10) { printf ("%d", random(100)); i++; } getch(); } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.4 LEÄNH WHILE Caùch khaùc: int i = 10; clrscr(); randomize(); printf ("So ngau nhien trong khoang 0-99 la: "); while (i) { printf ("%d", random(100)); --i; } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.4 LEÄNH WHILE Ví duï: Nhaäp caùc kyù töï cho ñeán khi naøo nhaän ñöôïc kyù töï ESC coù maõ ASCII laø 27 thì keát thuùc chöông trình.h> #define ESC 27 main() { char c; clrscr(); printf ("Cac ky tu duoc nhap la: "); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.4 LEÄNH WHILE while (1) { c = getche(); if (c == ESC) break; } } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.4 LEÄNH WHILE #include <stdio.h> #define ESC 27 main() { char c; clrscr(); printf ("Cac ky tu duoc nhap la: "); while (getche() - ESC) ; leänh thöïc thi roãng } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.5 LEÄNH DO-WHILE Neáu leänh while cho pheùp kieåm tra ñieàu kieän tröôùc roài thöïc thi leänh sau, nhö vaäy ngay töø ñaàu maø ñieàu kieän ñaõ sai thì leänh cuûa while khoâng ñöôïc thöïc thi, thì leänh laëp do-while laïi thöïc thi leänh tröôùc roài môùi kieåm tra ñieàu kieän sau.

Cuù phaùp cuûa leänh do-while nhö sau: do lenh while (bieåu_thöùc); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.5 LEÄNH DO-WHILE CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.5 LEÄNH DO-WHILE Ví duï: Vieát chöông trình cho pheùp kieåm tra vaø in ra phím muõi teân ñaõ ñöôïc nhaán.h> #define ESC 27 main() { char c; clrscr(); printf ("\n Moi an cac phim mui ten \n"); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.5 LEÄNH DO-WHILE do { c = getch(); if (c == 0) { c = getch(); switch(c) { case 'H': printf ("Ban da an mui ten len\n"); break; CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.5 LEÄNH DO-WHILE case 'P': printf ("Ban da an mui ten xuong\n"); break; case 'K': printf ("Ban da an mui ten qua trai\n"); break; case 'M': printf ("Ban da an mui ten qua phai\n"); CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.5 LEÄNH DO-WHILE break; } /* end switch */ } }while (c != 27); } CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.5 LEÄNH DO-WHILE Chuù yù raèng moãi phím muõi teân khi ñöôïc aán ñeàu sinh ra hai kyù töï: kyù töï ñaàu luoân laø kyù töï coù maõ ASCII laø 0 (töùc kyù töï NUL), kyù töï thöù hai laø caùc maõ ASII töông öùng vôùi phím, trong ví duï treân thì + Phím muõi teân leân coù maõ laø 0 vaø 'H' + Phím muõi teân xuoáng coù maõ laø 0 vaø 'P' + Phím muõi teân qua traùi coù maõ laø 0 vaø 'K' + Phím muõi teân coù maõ laø 0 vaø 'M'. CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.6 LEÄNH FOR Töông töï nhö ngoân ngöõ PASCAL, trong ngoân ngöõ C cuõng coù voøng laëp for, ñaây cuõng laø moät leänh laëp cho pheùp kieåm tra ñieàu kieän tröôùc, gioáng nhö while. Cuù phaùp cuûa leänh for nhö sau: for (bieåu_thöùc1; bieåu_thöùc2; bieåu_thöùc3) leänh CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.6 LEÄNH FOR - bieåu_thöùc1 coù yù nghóa laø bieåu thöùc ñeå khôûi ñoäng trò ñaàu cho bieán ñieàu khieån voøng for, noù coù theå laø bieåu thöùc gaùn hay bieåu thöùc phaåy, coù theå khoâng coù. - bieåu_thöùc2 coù yù nghóa laø bieåu thöùc cho pheùp kieåm tra xem voøng laëp coù ñöôïc tieáp tuïc laëp nöõa hay khoâng.

- bieåu_thöùc3 laø bieåu thöùc coù yù nghóa cho pheùp thay ñoåi bieán ñieàu khieån voøng laëp ñeå voøng laëp tieán daàn ñeán keát thuùc. Bieåu thöùc naøy ñöôïc tính sau khi caùc leänh thöïc thi trong thaân voøng for ñöôïc thöïc hieän xong. CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.6 LEÄNH FOR CHÖÔNG 8 CAÙC LEÄNH ÑIEÀU KHIEÅN VAØ VOØNG LAËP 8.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ