BÀI 21: CÂU LỆNH LẶP WHILE

Bài 21: Câu lệnh lặp while
Slide 1/8
🔄⚡🔁

BÀI 21: CÂU LỆNH LẶP WHILE

"Lặp khi không biết trước số lần lặp"

Tin học 10 | Lập trình cơ bản với Python
Slide 2/8

🎯 A. YÊU CẦU CẦN ĐẠT

  • Hiểu và thực hành giải bài toán sử dụng lệnh lặp while

    Biết cách sử dụng vòng lặp while khi số lần lặp không biết trước.

  • Nắm rõ ba cấu trúc lập trình cơ bản

    Hiểu và phân biệt được: Tuần tự, Rẽ nhánh, và Lặp.

📊 Ba Cấu Trúc Lập Trình Cơ Bản

➡️
1. Tuần Tự
Các lệnh được thực hiện lần lượt từ trên xuống dưới.
🔀
2. Rẽ Nhánh
Chương trình chọn đường đi dựa trên điều kiện (if/else).
🔄
3. Lặp
Thực hiện một khối lệnh nhiều lần (for, while).
Slide 3/8

🔄 B.1. LỆNH WHILE TRONG PYTHON

Định nghĩa:
Lệnh while dùng để lặp khi số lần lặp không xác định trước. Vòng lặp tiếp tục hoạt động cho đến khi điều kiện trở thành False.

📝 Cú Pháp:

while <điều kiện>:
<khối lệnh lặp>
Lưu ý: Sau dấu : các lệnh trong khối lệnh while phải lùi vào một tab hoặc 4 dấu cách.

📝 Ví Dụ Đơn Giản:

x = 1
while x <= 5:
print("Giá trị x:", x)
x += 1
Giải thích:
• Biến x bắt đầu từ 1
• Mỗi lần lặp, x tăng thêm 1
• Vòng lặp dừng khi x > 5
Kết quả: In ra các số từ 1 đến 5
🔍
Kiểm tra điều kiện
while kiểm tra điều kiện TRƯỚC khi thực thi khối lệnh
⚠️
Tránh vòng lặp vô hạn
Cần chú ý điều kiện lặp để tránh vòng lặp vô hạn
🔄
Thay đổi biến
Phải có câu lệnh thay đổi biến điều kiện trong vòng lặp
Slide 4/8

📊 VÍ DỤ 1: TỔNG BÌNH PHƯƠNG

❓ Câu hỏi: Quan sát đoạn chương trình sau và cho biết S nhận giá trị bao nhiêu?
S = 0
k = 1
while k*k < 100:
S = S + k*k
k = k + 1
print(S)
print(k)
📝 Phân tích:
• Đoạn chương trình tính tổng: 1² + 2² + ... + k²
• Điều kiện: k² < 100
• Vòng lặp dừng khi k² ≥ 100 (tức k = 10)
• Vậy S = 1² + 2² + 3² + ... + 9² = 285

🎯 Chi tiết từng bước lặp:

k=1: 1² = 1, S = 0+1 = 1
k=2: 2² = 4, S = 1+4 = 5
k=3: 3² = 9, S = 5+9 = 14
k=4: 4² = 16, S = 14+16 = 30
k=5: 5² = 25, S = 30+25 = 55
k=6: 6² = 36, S = 55+36 = 91
k=7: 7² = 49, S = 91+49 = 140
k=8: 8² = 64, S = 140+64 = 204
k=9: 9² = 81, S = 204+81 = 285
k=10: 10² = 100 ≥ 100 → DỪNG
✅ Kết luận:
S chính là tổng bình phương các số tự nhiên nhỏ hơn 10
S = 285, k = 10
Slide 5/8

📊 VÍ DỤ 2: IN DÃY SỐ

❓ Câu hỏi: Thực hiện các lệnh sau. Kết quả k sẽ in ra những số nào?
>>> k = 2
>>> while k < 50:
print(k, end=" ")
k = k + 3
📝 Phân tích:
• Vòng lặp while dừng khi k ≥ 50
• Bắt đầu: k = 2
• Sau mỗi bước lặp: k tăng lên 3 đơn vị
• Dãy số: 2, 5, 8, 11, 14, ..., 47

🎮 Mô phỏng tương tác:

Nhấn nút để xem dãy số được tạo ra...
✅ Kết quả:
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47
💡 Ghi Nhớ:
• while kiểm tra điều kiện TRƯỚC khi thực thi khối lệnh
• Cần chú ý điều kiện lặp để tránh vòng lặp vô hạn
• Phải có câu lệnh thay đổi biến điều kiện trong vòng lặp
• Sử dụng while khi KHÔNG biết trước số lần lặp
Slide 6/8

🎯 B.2. ỨNG DỤNG CỦA LỆNH WHILE

📊 2.1. Tính Tổng Các Số Chẵn Từ 2 Đến 100

s = 0
n = 2
while n <= 100:
s += n
n += 2
print("Tổng là:", s)
📝 Giải thích:
• Bắt đầu với n = 2 (số chẵn đầu tiên)
• Mỗi lần lặp, cộng n vào tổng s
• Tăng n lên 2 để lấy số chẵn tiếp theo
• Dừng khi n > 100
Kết quả: s = 2 + 4 + 6 + ... + 100 = 2550

🛑 2.2. Sử Dụng Lệnh break

Lệnh break giúp dừng ngay vòng lặp khi đạt một điều kiện nhất định.
x = 1
while True:
print(x, end=" ")
if x == 10:
break
x += 1
📝 Giải thích:
while True: tạo vòng lặp vô hạn
• Vòng lặp chạy vô hạn cho đến khi x == 10
• Lệnh break dừng vòng lặp ngay lập tức
Kết quả: In ra: 1 2 3 4 5 6 7 8 9 10
⚠️ Lưu ý khi dùng break:
• Dùng break để thoát khỏi vòng lặp khi cần thiết
• Thường dùng với while True để tạo vòng lặp có điều kiện dừng phức tạp
• Đảm bảo luôn có điều kiện để break, tránh vòng lặp vô hạn
Slide 7/8

💻 C. THỰC HÀNH

📝 1. In Dãy Số Tự Nhiên Từ 1 Đến 100 Trên Một Hàng Ngang

k = 1
while k <= 100:
print(k, end=" ")
k += 1
📝 Giải thích:
• Bắt đầu từ k = 1
• In k và tăng k thêm 1 mỗi lần lặp
• Sử dụng end=" " để in trên cùng một hàng
• Dừng khi k > 100

📝 2. In Chữ Cái Từ A Đến Z

k = 65 # Mã ASCII của 'A'
while k <= 90: # Mã ASCII của 'Z'
print(chr(k), end=" ")
k += 1
📝 Giải thích:
chr(k) chuyển số ASCII thành ký tự chữ cái
• Mã ASCII của 'A' là 65, 'Z' là 90
• Vòng lặp duyệt từ 65 đến 90
Kết quả: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

🎯 Bảng Mã ASCII Hữu Ích

Ký tự Mã ASCII Ký tự Mã ASCII
A 65 a 97
Z 90 z 122
0 48 9 57
Slide 8/8
🔄⚡🔁

D. KẾT LUẬN

"Lệnh while là một công cụ mạnh trong Python giúp thực hiện vòng lặp với số lần chưa biết trước."

🔄💪

"Biết cách sử dụng while giúp viết chương trình linh hoạt và hiệu quả hơn!"

🚀✨

🎯 Điểm Khác Biệt: for vs while

Tiêu chí Vòng lặp for Vòng lặp while
Số lần lặp Biết trước (xác định) Không biết trước
Điều kiện Dựa vào range() Dựa vào biểu thức logic
Ứng dụng Duyệt danh sách, dãy số Đợi điều kiện, nhập liệu

💡 Những điều cần nhớ:

Kiểm tra điều kiện trước
while kiểm tra trước khi lặp
⚠️
Tránh vòng lặp vô hạn
Luôn có điều kiện dừng
🔄
Thay đổi biến điều kiện
Cập nhật biến trong vòng lặp
🛑
Sử dụng break khi cần
Thoát vòng lặp linh hoạt
Hãy thực hành nhiều bài tập với vòng lặp while! 🎓✨
Lên đầu trang