🔁
Cấu Trúc
Chapter 5 · Lưu Đồ & Thuật Toán
Cấu Trúc
Lặp
Khi cần thực hiện một khối lệnh nhiều lần — vòng lặp là công cụ không thể thiếu trong mọi thuật toán!
Phần 1 — 3 dạng vòng lặp
FOR / WHILE / DO-WHILE — Khi nào dùng cái nào?
🔢 FOR
- Biết trước số lần lặp
- Có biến đếm i
- Kiểm tra điều kiện trước
- Ví dụ: in bảng cửu chương
⏳ WHILE
- Không biết trước số lần
- Kiểm tra điều kiện trước
- Có thể không thực hiện lần nào
- Ví dụ: nhập đến khi đúng
🔄 DO-WHILE
- Không biết trước số lần
- Kiểm tra điều kiện sau
- Luôn thực hiện ít nhất 1 lần
- Ví dụ: menu chọn lại
⚠️ Lưu ý quan trọng: Mọi vòng lặp đều phải có điều kiện dừng. Nếu điều kiện luôn đúng → vòng lặp vô tận (infinite loop) — lỗi nghiêm trọng!
Phần 2 — Vòng lặp FOR: Tính tổng 1+2+...+N
Bài toán: Tính S = 1 + 2 + 3 + ... + N
1
Khởi tạo: S=0 (tổng ban đầu), i=1 (biến đếm)
2
Kiểm tra i ≤ N: Nếu đúng thì thực hiện thân vòng lặp
3
S = S + i: Cộng i vào tổng S
4
i = i + 1: Tăng biến đếm
5
Quay lại bước 2 — lặp đến khi i > N
🔍 Truy vết N=4:
| Vòng | i | i≤N? | S |
|---|---|---|---|
| Init | 1 | — | 0 |
| 1 | 1 | ✓ | 0+1=1 |
| 2 | 2 | ✓ | 1+2=3 |
| 3 | 3 | ✓ | 3+3=6 |
| 4 | 4 | ✓ | 6+4=10 |
| — | 5 | ✗ Dừng | In 10 ✅ |
Phần 3 — Vòng lặp WHILE: Nhập đến khi hợp lệ
Bài toán: Nhập điểm cho đến khi 0 ≤ điểm ≤ 10
1
Nhập Điểm lần đầu
2
Kiểm tra: Điểm < 0 hoặc > 10?
3
Nếu sai: Thông báo lỗi → nhập lại → quay lại bước 2
4
Nếu đúng: Điểm hợp lệ → In điểm → Kết thúc
💡 Đặc điểm WHILE: Nếu điểm nhập lần đầu đã hợp lệ → vòng lặp không chạy lần nào!
Phần 4 — Vòng lặp DO-WHILE: Menu chọn lại
DO-WHILE — Luôn thực hiện ít nhất 1 lần
LẶP
In menu: 1.Cộng 2.Trừ 3.Thoát
Nhập lua_chon
NẾU lua_chon = 1 THÌ thực hiện Cộng
NẾU lua_chon = 2 THÌ thực hiện Trừ
CHO ĐẾN KHI lua_chon = 3
🔄 Khác biệt với WHILE: DO-WHILE kiểm tra điều kiện ở cuối — nên dù lua_chon = 3 ngay từ đầu, menu vẫn hiển thị ít nhất 1 lần trước khi thoát!
🧩 Kiểm tra nhanh!
Chapter 5 — Cấu trúc lặp
Vòng lặp nào kiểm tra điều kiện sau?
→ DO-WHILE (lặp..cho đến khi)
→ DO-WHILE (lặp..cho đến khi)
N=5: Tổng 1+2+3+4+5 = ?
→ S = 15
→ S = 15
Trong lưu đồ FOR, mũi tên quay về đâu?
→ Quay về bước kiểm tra điều kiện
→ Quay về bước kiểm tra điều kiện
Vòng lặp nào đảm bảo chạy ít nhất 1 lần?
→ DO-WHILE
→ DO-WHILE