Cấu trúc rẽ nhánh có mấy dạng? Tin học lớp 11 đầy đủ chi tiết

Mục lục

Cấu trúc rẽ nhánh có 2 dạng: dạng thiếu (Nếu…thì…) và dạng đủ (Nếu…thì…, nếu không thì…). Đây là kiến thức trọng tâm trong chương trình Tin học lớp 11, Bài 9 — Chương III: Cấu trúc rẽ nhánh và lặp. Hai dạng này được biểu diễn trong ngôn ngữ lập trình bằng câu lệnh IF-THEN (dạng thiếu) và IF-THEN-ELSE (dạng đủ).

Cấu trúc rẽ nhánh có mấy dạng?

Theo SGK Tin học 11 (Bộ Giáo dục và Đào tạo), cấu trúc rẽ nhánh có 2 dạng: dạng thiếu và dạng đủ. Đây là đáp án chuẩn cho câu hỏi trắc nghiệm trong đề thi Tin học THPT về chủ đề cấu trúc điều khiển.

Cấu trúc rẽ nhánh có mấy dạng?
Cấu trúc rẽ nhánh có mấy dạng?

Dạng thiếu diễn đạt mệnh đề “Nếu điều kiện đúng thì thực hiện câu lệnh” — không quy định hành động khi điều kiện sai. Dạng đủ diễn đạt mệnh đề “Nếu điều kiện đúng thì thực hiện câu lệnh 1, nếu không thì thực hiện câu lệnh 2” — luôn xác định hành động cho cả hai trường hợp đúng và sai.

Cấu trúc rẽ nhánh là gì?

Cấu trúc rẽ nhánh (còn gọi là cấu trúc điều kiện) là một trong ba cấu trúc điều khiển cơ bản của lập trình, bên cạnh cấu trúc tuần tự và cấu trúc lặp. Cấu trúc này dùng để chỉ dẫn máy tính thực hiện các hành động khác nhau tùy theo một điều kiện cụ thể có được thỏa mãn hay không.

“Cấu trúc rẽ nhánh dùng để diễn đạt một việc sẽ được thực hiện khi một điều kiện cụ thể được thỏa mãn.” — SGK Tin học 11, Bộ Giáo dục và Đào tạo

Trong cuộc sống hàng ngày, cấu trúc rẽ nhánh xuất hiện rất tự nhiên. Ví dụ: “Nếu trời mưa thì mang ô” — đây là dạng thiếu. “Nếu trời mưa thì mang ô, nếu không mưa thì không cần mang” — đây là dạng đủ. Mọi ngôn ngữ lập trình đều có câu lệnh để biểu diễn hai mệnh đề điều kiện này.

Cấu trúc rẽ nhánh dạng thiếu — Cú pháp, ý nghĩa và ví dụ

Cấu trúc rẽ nhánh dạng thiếu chỉ quy định hành động khi điều kiện đúng, không xử lý trường hợp điều kiện sai. Dưới đây là các thông tin cốt lõi cần nắm:

  • Mô hình ngôn ngữ tự nhiên: Nếu <điều kiện> thì <công việc>.
  • Cú pháp Pascal: IF <Điều kiện> THEN <Câu lệnh>;
  • Cú pháp Python: if <điều kiện>: <khối lệnh>
  • Ý nghĩa hoạt động: Điều kiện được tính và kiểm tra. Nếu điều kiện đúng (True) thì câu lệnh được thực hiện. Nếu điều kiện sai (False) thì câu lệnh bị bỏ qua, chương trình chuyển sang lệnh tiếp theo.
  • Ví dụ thực tế: Kiểm tra số chẵn trong Pascal: IF a mod 2 = 0 THEN Writeln('a là số chẵn'); — khi a chia hết cho 2, câu lệnh in ra màn hình được thực hiện; ngược lại, không có gì xảy ra.

Cấu trúc rẽ nhánh dạng đủ — Cú pháp, ý nghĩa và ví dụ

Cấu trúc rẽ nhánh dạng đủ xác định rõ hành động cho cả hai trường hợp: khi điều kiện đúng và khi điều kiện sai. Đây là dạng toàn diện hơn so với dạng thiếu, phù hợp với bài toán cần xử lý cả hai tình huống.

Cú pháp trong Pascal: IF <Điều kiện> THEN <Câu lệnh 1> ELSE <Câu lệnh 2>;
Cú pháp trong Python: if <điều kiện>: <khối lệnh 1> else: <khối lệnh 2>

Ý nghĩa hoạt động: Điều kiện được tính và kiểm tra. Nếu điều kiện đúng thì thực hiện câu lệnh 1 (sau THEN). Nếu điều kiện sai thì thực hiện câu lệnh 2 (sau ELSE). Lưu ý quan trọng trong Pascal: trước từ khóa ELSE không được đặt dấu chấm phẩy (;) — đây là lỗi cú pháp thường gặp của học sinh.

Ví dụ thực tế: Kiểm tra số chẵn hay lẻ trong Pascal:
IF a mod 2 = 0 THEN Writeln('a là số chẵn') ELSE Writeln('a là số lẻ');
Chương trình luôn in ra một trong hai thông báo, không có trường hợp nào bị bỏ qua.

So sánh cấu trúc rẽ nhánh dạng thiếu và dạng đủ

Hai dạng cấu trúc rẽ nhánh có những điểm khác biệt quan trọng cần nắm rõ để chọn đúng dạng khi viết thuật toán và lập trình.

Tiêu chí Dạng thiếu Dạng đủ
Mô hình ngôn ngữ Nếu … thì … Nếu … thì …, nếu không thì …
Cú pháp Pascal IF <ĐK> THEN <CL>; IF <ĐK> THEN <CL1> ELSE <CL2>;
Xử lý khi điều kiện đúng Thực hiện câu lệnh Thực hiện câu lệnh 1
Xử lý khi điều kiện sai Bỏ qua, tiếp tục chương trình Thực hiện câu lệnh 2
Khi nào nên dùng Chỉ cần xử lý một trường hợp Cần xử lý cả hai trường hợp
Ví dụ ứng dụng In thông báo nếu delta < 0 Kiểm tra số chẵn/lẻ, dương/âm

Trong thực tế lập trình, dạng đủ được dùng phổ biến hơn vì đảm bảo chương trình luôn xử lý đầy đủ mọi tình huống, giảm nguy cơ lỗi logic khi điều kiện không thỏa mãn.

Cấu trúc rẽ nhánh trong các ngôn ngữ lập trình phổ biến

Cấu trúc rẽ nhánh được triển khai trong mọi ngôn ngữ lập trình hiện đại, tuy cú pháp có khác nhau nhưng logic hoạt động đều giống nhau.

Pascal (Tin học 11)

Pascal sử dụng câu lệnh IF-THEN cho dạng thiếu và IF-THEN-ELSE cho dạng đủ. Điều kiện trong Pascal là biểu thức quan hệ hoặc biểu thức logic. Ví dụ kiểm tra nghiệm phương trình bậc hai:

  • Dạng thiếu: IF delta < 0 THEN Writeln('Phương trình vô nghiệm');
  • Dạng đủ: IF delta >= 0 THEN Writeln('Có nghiệm') ELSE Writeln('Vô nghiệm');
  • Lưu ý câu lệnh ghép: Khi cần thực hiện nhiều lệnh trong một nhánh, dùng cặp từ khóa BEGIN…END để nhóm thành câu lệnh ghép.

Python (Tin học 11 chương trình mới)

Python sử dụng cú pháp if…else với cách viết căn lề thụt đầu dòng (indentation) thay vì dùng dấu ngoặc nhọn. Ví dụ kiểm tra số dương hay âm:

  • Dạng thiếu: if a >= 0: print("a là số dương")
  • Dạng đủ: if a >= 0: print("a là số dương") else: print("a là số âm")
  • Dạng mở rộng nhiều điều kiện: Python cung cấp thêm if…elif…else để xử lý nhiều nhánh điều kiện, ví dụ phân loại đèn giao thông (đỏ / vàng / xanh) mà không cần lồng nhau phức tạp.

Những lưu ý thực tế khi sử dụng cấu trúc rẽ nhánh

Để tránh lỗi và viết chương trình chính xác khi áp dụng hai dạng cấu trúc rẽ nhánh, học sinh cần ghi nhớ các điểm sau:

  • Không đặt dấu chấm phẩy trước ELSE trong Pascal: Đây là lỗi cú pháp phổ biến nhất. Câu lệnh IF…THEN <CL1>; ELSE <CL2>; sẽ báo lỗi biên dịch vì dấu ; kết thúc câu lệnh IF trước khi đọc được ELSE.
  • Dùng câu lệnh ghép khi cần nhiều lệnh: Nếu một nhánh cần thực hiện nhiều câu lệnh, bắt buộc phải dùng BEGIN…END (Pascal) hoặc căn lề thụt đầu dòng (Python) để nhóm các lệnh lại.
  • Điều kiện phải là biểu thức logic: Biểu thức điều kiện chỉ nhận giá trị True (đúng) hoặc False (sai). Tránh nhầm lẫn giữa toán tử so sánh = và toán tử gán := trong Pascal.
  • Chọn dạng thiếu hay đủ tùy bài toán: Nếu chỉ cần xử lý một trường hợp, dạng thiếu gọn hơn. Nếu cần xử lý cả hai trường hợp, dạng đủ đảm bảo logic chặt chẽ hơn.
  • Có thể lồng cấu trúc rẽ nhánh: Một câu lệnh IF có thể chứa bên trong một câu lệnh IF khác (rẽ nhánh lồng nhau), dùng khi cần kiểm tra nhiều điều kiện phụ thuộc.

Câu hỏi thường gặp về cấu trúc rẽ nhánh có mấy dạng

Cấu trúc rẽ nhánh có mấy dạng?

Cấu trúc rẽ nhánh có 2 dạng: dạng thiếu (IF-THEN) và dạng đủ (IF-THEN-ELSE). Đáp án: B.

Dạng thiếu và dạng đủ khác nhau ở điểm gì?

Dạng thiếu chỉ xử lý khi điều kiện đúng; dạng đủ xử lý cả hai trường hợp — điều kiện đúng và điều kiện sai.

Trước từ khóa ELSE có đặt dấu chấm phẩy không?

Không. Trong Pascal, trước từ khóa ELSE tuyệt đối không đặt dấu chấm phẩy (;) — đây là quy tắc cú pháp bắt buộc.

Câu lệnh ghép trong Pascal là gì?

Câu lệnh ghép dùng BEGIN…END để nhóm nhiều câu lệnh thành một khối, dùng khi một nhánh IF cần thực hiện từ 2 lệnh trở lên.

Cấu trúc if…elif…else trong Python có phải cấu trúc rẽ nhánh không?

Có. if…elif…else là dạng mở rộng của cấu trúc rẽ nhánh trong Python, dùng để xử lý nhiều điều kiện liên tiếp.

Nắm vững hai dạng cấu trúc rẽ nhánh — dạng thiếu và dạng đủ — là nền tảng để học sinh THPT xây dựng thuật toán và viết chương trình giải quyết các bài toán thực tế. Dạng thiếu phù hợp khi chỉ cần xử lý một tình huống; dạng đủ đảm bảo logic toàn diện khi cần phân nhánh rõ ràng. Kết hợp hiểu cú pháp đúng, biết cách dùng câu lệnh ghép và tránh đặt sai dấu chấm phẩy, học sinh sẽ tự tin áp dụng cấu trúc này trong cả Pascal lẫn Python.