Kiểm Soát Dòng Chảy Lập Trình Với if, elif, else Trong Python: Ra Quyết Định Cho Máy Tính

lúc 13:49 20 tháng 8, 2026
10 views
Kiểm Soát Dòng Chảy Lập Trình Với if, elif, else Trong Python: Ra Quyết Định Cho Máy Tính

Chào bạn! Sau khi đã làm chủ các kiểu dữ liệu và tư duy logic Boolean, chúng ta sẽ bước sang một bước tiến mang tính bước ngoặt: Trao cho máy tính khả năng tự động ra quyết định thông qua các câu lệnh rẽ nhánh (if, elif, else).

Từ việc xếp loại học lực học sinh cho đến hệ thống giao dịch tự động tại cây ATM, tất cả đều vận hành dựa trên các dòng chảy điều kiện này. Hãy cùng khám phá checklist toàn diện dưới đây để nắm vững cú pháp và tư duy logic nhé!

1. Cú Pháp và Quy Tắc Bắt Buộc

Python rất nghiêm ngặt về mặt trình bày. Để tránh những lỗi cú pháp ngớ ngẩn, bạn cần nằm lòng các quy tắc sau:

  • Dấu hai chấm (:): Luôn phải đặt dấu hai chấm ngay sau mỗi câu lệnh if, elif, và else.
  • Khoảng thụt lề (Indentation): Toàn bộ các dòng code nằm bên trong một khối điều kiện phải được thụt lề vào trong (thường là 4 khoảng trắng hoặc 1 phím Tab) so với hàng chứa if/elif/else.
  • Bản chất của điều kiện: Biểu thức đứng ngay sau từ khóa if hoặc elif bắt buộc phải là một biểu thức trả về giá trị Boolean (True hoặc False), hoặc một giá trị mang tính chất Truthy/Falsy.
  • Tính duy nhất của else: Khối else luôn nằm ở cuối cùng của chuỗi điều kiện, không đi kèm bất kỳ biểu thức so sánh nào, và chỉ được xuất hiện tối đa một lần trong một cụm cấu trúc.

2. Luồng Hoạt Động (Logic Flow)

Hãy chắc chắn bạn hiểu cách máy tính quét qua các khối lệnh để không bị nhầm lẫn kết quả:

  • Nguyên tắc "Gặp Đúng Là Dừng": Hệ thống sẽ kiểm tra các nhánh theo thứ tự từ trên xuống dưới. Khi tìm thấy nhánh đầu tiên thỏa mãn điều kiện (True), Python sẽ thực thi khối lệnh bên trong nhánh đó và bỏ qua toàn bộ các nhánh còn lại phía sau (kể cả khi các nhánh sau cũng đúng).
  • Vai trò của elif (Else If): Dùng khi bài toán có từ 3 hướng giải quyết trở lên để tạo ra nhiều bộ lọc liên tiếp.
  • Vai trò "Bảo hiểm" của else: Khối lệnh bên trong else đóng vai trò như một phương án dự phòng cuối cùng, nó chỉ được kích hoạt khi tất cả các điều kiện if và elif phía trên đều thất bại (False).
  • Cấu trúc lồng nhau (Nested If): Biết cách đặt một câu lệnh if nằm gọn bên trong một câu lệnh if khác để kiểm tra các tầng điều kiện sâu hơn.

3. Thực Hành Ngay Trên VS Code

Lý thuyết đã thông suốt, giờ là lúc thực chiến với 2 bài toán phân loại thực tế:

Bài tập 1: Hệ thống tính điểm và xếp loại học lực (Grading System)

  • Tạo biến lưu điểm số của học sinh exam_score dạng số thực hoặc số nguyên (Ví dụ: từ 0 đến 100).
  • Viết cấu trúc điều kiện để phân loại:
  • Nếu điểm từ 90 trở lên: Tạo biến kết quả academic_rank gán giá trị "Excellent".
  • Nếu điểm từ 70 đến dưới 90: Gán academic_rank bằng "Good".
  • Nếu điểm từ 50 đến dưới 70: Gán academic_rank bằng "Pass".
  • Các trường hợp còn lại dưới 50: Gán academic_rank bằng "Fail".
  • In giá trị của academic_rank ra màn hình để kiểm tra tính chính xác của bộ lọc.

Bài tập 2: Kiểm tra số dư và xử lý giao dịch ATM (ATM Cash Withdrawal)

  • Tạo biến số dư hiện tại của tài khoản account_balance và biến số tiền khách hàng muốn rút withdrawal_amount.
  • Tạo một biến logic is_account_active để lưu trạng thái thẻ tài khoản có đang hoạt động hay không (gán True hoặc False).
  • Viết cấu trúc câu lệnh rẽ nhánh lồng nhau (Nested If) để kiểm tra:
  • Vòng ngoài: Kiểm tra nếu tài khoản đang hoạt động (is_account_active bằng True) mới cho đi tiếp vào vòng trong. Ngược lại, in thông báo lỗi thẻ bị khóa.
  • Vòng trong: Kiểm tra xem số dư account_balance có lớn hơn hoặc bằng số tiền muốn rút withdrawal_amount hay không. Nếu đủ tiền, thực hiện trừ số dư và in lời chúc. Nếu không đủ tiền, in thông báo số dư không đủ.

Bạn đã thử nghiệm thành công cấu trúc rẽ nhánh lồng nhau (Nested If) trong bài toán ATM chưa? Hãy để lại bình luận nếu bạn gặp bất kỳ thử thách thú vị nào nhé!

Bình luận

Đăng nhập để để lại bình luận.
Chưa có bình luận nào cho bài viết này.

Bài viết liên quan