Tin Học KHMT
Ôn tập Tin học THPT › Tin học 10 › Bài 23
Tin học 10

Bài 23. Câu lệnh rẽ nhánh if - elif - else

Bài học giới thiệu cấu trúc rẽ nhánh if - elif - else trong Python - công cụ giúp chương trình kiểm tra một điều kiện rồi tự chọn hướng xử lý phù hợp, thay vì luôn chạy theo một đường duy nhất. Bài cũng làm rõ các phép so sánh, toán tử logic, và quy tắc thụt lề bắt buộc khi viết các khối lệnh.

Chủ đề F · Lập trình, Thuật toán & CTDL (KHMT) - đọc khoảng 12 phút · 24 câu luyện tập trong ứng dụng

Tương ứng sách giáo khoa
  • Cánh DiềuTin học 10 - Chủ đề F · Bài 6. Câu lệnh rẽ nhánhtr. 72
  • Cánh DiềuTin học 10 - Chủ đề F · Bài 7. Thực hành câu lệnh rẽ nhánhtr. 77
  • Kết nối tri thứcTin học 10 - Bài 19. Câu lệnh rẽ nhánh Iftr. 101–104
Xem bảng đối chiếu cả bộ →

Bắt đầu bằng một hình dung

Hãy hình dung ta đang lái xe đến gần một ngã tư. Ta không cứ thế đi thẳng bất kể chuyện gì đang diễn ra phía trước - mắt luôn quan sát đèn tín hiệu và biển báo, rồi mới quyết định hành động tiếp theo: đèn xanh thì đi tiếp, đèn vàng thì giảm tốc và chuẩn bị dừng, đèn đỏ thì dừng hẳn lại chờ. Cùng một ngã tư, nhưng hành động cụ thể mỗi lần lại khác nhau, tuỳ vào điều kiện đang quan sát được ngay lúc đó.

Những chương trình đơn giản viết trước nay - nhập dữ liệu, tính toán, rồi in kết quả - đều chạy theo một đường thẳng duy nhất từ trên xuống dưới, giống như một người chỉ biết đi thẳng bất kể đèn đang xanh hay đỏ. Nhưng phần lớn bài toán trong thực tế lại giống tình huống ở ngã tư hơn nhiều: chương trình cần “nhìn” vào một điều kiện tại thời điểm chạy, rồi tự chọn ra đúng một hướng xử lý phù hợp. Khả năng lựa chọn hướng đi đó gọi là rẽ nhánh, và đây chính là chủ đề bài học này.

Nội dung bài học

  1. 1. Vì sao chương trình cần rẽ nhánh?
  2. 2. Cấu trúc if - elif - else và quy tắc thụt lề

Tóm tắt lý thuyết cần nhớ

  • Cấu trúc rẽ nhánh if - elif - else giúp chương trình kiểm tra điều kiện rồi chọn ra một hướng xử lý phù hợp, thay vì luôn chạy theo một đường thẳng duy nhất.
  • Python xét các điều kiện theo đúng thứ tự viết ra, từ trên xuống, và chỉ chạy khối lệnh của nhánh đúng đầu tiên gặp được rồi thoát ngay - các nhánh phía sau, dù đúng hay sai, đều không được xét tới nữa.
  • Khối lệnh bên trong mỗi nhánh bắt buộc phải thụt lề thống nhất; đồng thời cần phân biệt rõ = (gán giá trị) với == (so sánh bằng) - nhầm lẫn hai ký hiệu này là lỗi rất phổ biến.
  • Toán tử logic and, or, not cho phép ghép nhiều phép so sánh (==, !=, <, >, <=, >=) lại thành một điều kiện phức tạp hơn để kiểm tra trong if.

Thuật ngữ tiếng Anh trong bài

Tiếng AnhĐọc làNghĩa
ifípcâu lệnh rẽ nhánh if
Lệnh kiểm tra một điều kiện, nếu đúng thì máy mới làm việc bên trong - như 'nếu trời mưa thì mang ô đi học'.
elife-LÍPnhánh elif (nếu-không-thì-nếu)
Dùng ngay sau if, để kiểm tra thêm một điều kiện khác khi if ở trên sai - như 'nếu không mưa thì xem có nắng to không'.
elsee(-lờ)-xờnhánh else (còn-không-thì)
Nói trường hợp còn lại, khi các if và elif ở trên đều sai - như 'còn không thì mặc áo bình thường đi học'.
boolbu(-lờ)kiểu lôgic (bool)
Kiểu lôgic, chỉ có hai giá trị True (Đúng) hoặc False (Sai) - giống công tắc chỉ có bật hoặc tắt, không nửa vời.

Câu hỏi trắc nghiệm có đáp án

Mấy câu mẫu để bạn tự kiểm tra ngay. Trong ứng dụng, bài này có đủ 24 câu, chấm điểm tự động và giải thích từng câu sai.

Câu 1 · Nhận biết
Cấu trúc if - elif - else trong Python được dùng để làm gì?
  1. Lặp lại một khối lệnh nhiều lần cho tới khi đạt điều kiện dừng, mỗi vòng lại kiểm tra điều kiện đó một lần
  2. Cho chương trình chọn một hướng xử lý phù hợp tuỳ theo điều kiện, thay vì luôn chạy theo một đường duy nhất
  3. Lưu trữ nhiều giá trị khác nhau bên trong một biến duy nhất, mỗi giá trị ứng với một nhánh elif của biến
  4. Đọc dữ liệu người dùng nhập từ bàn phím rồi tự động đổi sang kiểu số cho hợp với điều kiện đang xét
Đáp án: B - if - elif - else là cấu trúc rẽ nhánh, giúp chương trình kiểm tra điều kiện rồi chọn đúng một hướng xử lý phù hợp. Lặp lại nhiều lần là công việc của vòng lặp (for, while), lưu nhiều giá trị là công việc của list, còn đọc dữ liệu từ bàn phím là công việc của input() - đều không phải chức năng của rẽ nhánh.
Câu 2 · Nhận biết
Trong Python, ký hiệu nào dùng để SO SÁNH xem hai giá trị có bằng nhau hay không (không phải để gán giá trị)?
  1. =
  2. ==
  3. !=
  4. <=
Đáp án: B - = dùng để gán giá trị cho biến (ví dụ x = 5 nghĩa là gán số 5 cho x), còn == mới là phép so sánh bằng (ví dụ x == 5 kiểm tra xem x có đang bằng 5 hay không). != là so sánh khác nhau, <= là so sánh nhỏ hơn hoặc bằng - cả hai đều không phải phép so sánh bằng nhau.
Câu 3 · Thông hiểu
Cho biến x = 7. Biểu thức điều kiện x > 5 and x < 10 được Python đánh giá là gì?
  1. True, vì cả hai điều kiện x > 5x < 10 đều đúng
  2. False, vì x không thể vừa lớn hơn 5 vừa nhỏ hơn 10
  3. True, vì chỉ cần một trong hai điều kiện đúng là đủ
  4. Chương trình báo lỗi vì không được ghép hai phép so sánh trong cùng một điều kiện
Đáp án: A - Với x = 7: điều kiện x > 5 cho kết quả True, điều kiện x < 10 cũng cho kết quả True. Toán tử and chỉ trả về True khi CẢ HAI vế cùng đúng, nên biểu thức ghép cho kết quả True. Phương án B hiểu sai - 7 hoàn toàn thoả cả hai điều kiện cùng lúc; phương án C là cách hoạt động của or, không phải and; phương án D sai vì Python cho phép ghép nhiều phép so sánh bằng and/or bình thường.
Câu Đúng/Sai (Phần II) · Thông hiểu
Cho biết mỗi phát biểu sau đúng hay sai:
  • a)Khối lệnh bên trong if, elif, else bắt buộc phải thụt lề thống nhất; thụt lề sai hoặc không đều có thể khiến chương trình báo lỗi hoặc chạy không đúng ý muốn.Đúng
  • b)Toán tử and cho kết quả đúng khi chỉ cần MỘT trong hai điều kiện ở hai vế là đúng.Sai
  • c)Một cấu trúc rẽ nhánh có thể chứa nhiều elif, nhưng chỉ được có nhiều nhất một else, và else (nếu có) luôn nằm ở cuối cùng.Đúng
  • d)Sau khi một nhánh có điều kiện đúng đã được chạy, Python vẫn tiếp tục kiểm tra các elif phía sau để chắc chắn không bỏ sót trường hợp nào.Sai
Vì sao:
  • (a) Đúng - Python dùng thụt lề để xác định ranh giới từng khối lệnh thay vì dùng dấu ngoặc như một số ngôn ngữ khác; thụt lề sai là lỗi rất phổ biến với người mới học.
  • (b) Sai - đó là cách hoạt động của toán tử or. Toán tử and chỉ cho kết quả đúng khi CẢ HAI điều kiện ở hai vế đều đúng.
  • (c) Đúng - có thể thêm bao nhiêu elif cũng được để kiểm tra thêm điều kiện, nhưng else không kèm điều kiện nên chỉ có thể xuất hiện một lần, đóng vai trò cho trường hợp còn lại, và luôn đứng cuối.
  • (d) Sai - Python dừng lại ngay khi gặp nhánh đúng đầu tiên, chạy khối lệnh của nhánh đó rồi thoát khỏi toàn bộ cấu trúc if - elif - else, không kiểm tra thêm bất kỳ nhánh nào phía sau nữa.

Thử ngay: minh hoạ từng bước

Bấm từng bước để tự xem cơ chế hoạt động, hoặc bấm “Tự chạy” cho nó tiến mỗi giây một lần. Đổi được dữ liệu đầu vào - không cần đăng nhập.

Học trọn bài này trong ứng dụng

Bài giảng đầy đủ, 24 câu luyện tập chấm tự động, thi thử đúng cấu trúc đề tốt nghiệp (24 trắc nghiệm + 4 Đúng/Sai), bài thực hành máy tự chấm và gia sư AI giải thích chỗ sai.

Mở bài 23 trong ứng dụng

Phần học miễn phí, không cần tạo tài khoản.